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 (1286)
Showing
with 1310 additions and 607 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
debian_jessie_i386_deb:
tags:
- debian
- jessie
- i386
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
# 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_jessie_x86_64_deb:
tags:
- debian
- jessie
- x86_64
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
debian_stretch_x86_64_deb:
tags:
- debian
- stretch
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
ubuntu_14.04_i386_deb:
tags:
- ubuntu
- v14.04
- i386
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
ubuntu_14.04_x86_64_deb:
tags:
- ubuntu
- v14.04
- x86_64
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
......@@ -110,17 +60,13 @@ ubuntu_16.04_x86_64_deb:
- ubuntu
- v16.04
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- cd l2ork_addons
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
......@@ -132,48 +78,46 @@ osx_10.11_x86_64_dmg:
- osx
- v10.11
- dmg
variables:
BUILD_TYPE_FLAG: -X
script:
- echo `pwd`
- cd l2ork_addons
- ./tar_em_up.sh -X
- cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
- *build_all
- *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Pd*.dmg
- 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`
- cd l2ork_addons
- osx_version=10.8 ./tar_em_up.sh -X
- cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
- *build_all
- *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Pd*.dmg
- Purr*.dmg
windows_i386_innosetup:
windows_x86_64_innosetup:
tags:
- windows
- i386
- x86_64
variables:
BUILD_TYPE_FLAG: -Z
script:
- echo `pwd`
- cd l2ork_addons
- ./tar_em_up.sh -Z
- cd ../scripts
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio external-tests.pd
- *build_all
- *test_windows
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
......@@ -185,17 +129,14 @@ raspbian_stretch_armv7l_deb:
- raspbian
- arm
- stretch
variables:
BUILD_TYPE_FLAG: -r
before_script:
- *debian_image_preparation
script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- echo `pwd`
- cd l2ork_addons
- ./tar_em_up.sh -r
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
......
......@@ -4,18 +4,12 @@
[submodule "l2ork_addons/cwiid"]
path = externals/disis/cwiid
url = https://github.com/pd-l2ork/cwiid
[submodule "externals/fftease"]
path = externals/fftease
url = https://git.purrdata.net/jwilkes/fftease.git
[submodule "Gem"]
path = Gem
url = https://git.purrdata.net/jwilkes/Gem.git
[submodule "externals/lyonpotpourri"]
path = externals/lyonpotpourri
url = https://git.purrdata.net/jwilkes/lyonpotpourri3.0.git
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://git.purrdata.net/jwilkes/pd-lua.git
url = https://github.com/agraef/pd-lua.git
Subproject commit 438dab32831090c2d2cddb71d6a3219622623484
Subproject commit 0d5f10cc9166ce8971c6fde32fa0d2d47ab33fa0
This diff is collapsed.
# Pd-l2ork Copyright and Terms of Use
# Purr-Data Copyright and Terms of Use
Pd, as well as this compilation of Pd-related software known as Purr Data
Pd, as well as this compilation of Pd-related software known as Purr-Data
a.k.a. Pd-l2ork 2.x, is copyrighted software by various authors, but it is
distributed as open-source software, which means that it can be used freely
and without any costs under the appropriate license terms, as detailed below.
......@@ -32,21 +32,21 @@ for details.
Copyright (c) by various authors, please see the included license files for
details
Pd-l2ork includes a large number of bundled abstractions and externals by
Purr-Data includes a large number of bundled abstractions and externals by
various authors. These can be found in the abstractions, externals and Gem
subdirectories in the source, and in the extra subdirectory of the Pd-l2ork
subdirectories in the source, and in the extra subdirectory of the Purr-Data
library directory of the installed application. Each of these items has its
own open-source license under which it is distributed (mostly different
variations of the BSD license or the GPL), so please check the corresponding
license files in the source or the extra directory of the installed package
for license information pertaining to each of the different software modules.
## Pd-l2ork License
## Purr-Data License
Copyright (c) by Hans-Christoph Steiner, Ico Bukvic, Jonathan Wilkes and
others
Purr Data (by Jonathan Wilkes) is based on Pd-l2ork (by Ico Bukvic) which in
Purr-Data (by Jonathan Wilkes) is based on Pd-l2ork (by Ico Bukvic) which in
turn is based on Pd-extended (by Hans-Christoph Steiner), which is licensed
under the GPL (GNU Public License) version 3, replicated below. Please note
that this license applies to all parts of this package which are *not*
......
......@@ -77,10 +77,16 @@
.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
# (see below).
# *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),)
......@@ -89,11 +95,25 @@ 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 =
......@@ -132,7 +152,7 @@ light-double:
make -C externals $(@:%_ext=%) $(@:%_ext=%_install) $(install_vars)
checkout:
git submodule update --init
git submodule update --init --recursive
clean:
test "$(shell uname -s)" = "Darwin" && make -C packages/darwin_app clean || true
......@@ -151,6 +171,40 @@ realclean:
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
......@@ -203,6 +257,8 @@ submodules = $(sort $(shell test -d .git && (git config --file .gitmodules --get
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)
......@@ -216,9 +272,15 @@ $(debsrc):
git archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules.
for x in $(submodules); do (cd $(debdist) && rm -rf $$x && git -C ../$$x archive --format=tar.gz --prefix=$$x/ HEAD | tar xfz -); done
# Pre-generate and put s_stuff.h into the tarball (see above; the build
# 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_stuff.h.in > $(debdist)/pd/src/s_stuff.h
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.
......@@ -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
......
......@@ -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
......
......@@ -32,9 +32,15 @@
# 4. Run 'make debclean' to get rid of any files that were created in steps 2
# 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
# commit. You can print it with 'make debversion'.
debversion = $(shell grep PD_L2ORK_VERSION ../pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')+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.
debrevision = 1
# Source tarball and folder.
......@@ -42,13 +48,19 @@ debsrc = purr-data_$(debversion).orig.tar.gz
debdist = purr-data-$(debversion)
# nw.js sdk
nwjsver = 0.22.1
# 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
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 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
# debchange'). Adjust as needed.
......@@ -68,7 +80,7 @@ debchange:
debclean:
rm -rf $(debdist)
rm -f purr-data_*+git*
rm -f purr-data_*+git* purr-data-dbgsym_*+git*
deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs))
# Unpack the source into our temporary build directory.
......@@ -91,24 +103,33 @@ deb-us:
debsrc-us:
$(MAKE) deb DEBUILD_FLAGS="-S -d -us -uc"
# 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)
$(debsrc):
rm -rf $(debdist)
# Make sure that the submodules are initialized.
git -C .. submodule update --init
git -C .. submodule update --init --recursive
# Grab the main source.
git -C .. archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules.
for x in $(submodules); do (cd $(debdist) && rm -rf $$x && git -C ../../$$x archive --format=tar.gz --prefix=$$x/ HEAD | tar xfz -); done
# Pre-generate and put s_stuff.h into the tarball (see above; the build
# 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_stuff.h.in > $(debdist)/pd/src/s_stuff.h
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.
tar cfz $(debsrc) $(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:
mkdir -p debian/nwjs && cd debian/nwjs && wget http://dl.nwjs.io/v$(nwjsver)/$(notdir $@)
......@@ -2,14 +2,15 @@ Source: purr-data
Section: sound
Priority: extra
Maintainer: Albert Graef <aggraef@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, 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, liblua5.3-dev | liblua5.2-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, 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
Homepage: https://git.purrdata.net/jwilkes/purr-data
Package: purr-data
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python, 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
Suggests: python, fluid-soundfont-gm
Description: Interactive multimedia programming environment (NW.js variant)
This is Jonathan Wilkes' nw.js variant of Pd-L2Ork, nick-named
"Purr-Data". Basically, it is Pd-L2Ork with the Tk GUI replaced
......
......@@ -4,10 +4,18 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
nwjsver = 0.22.1
nwjsver = 0.55.0
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
else
arch = ia32
......@@ -27,10 +35,20 @@ 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:
# 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
cd l2ork_addons && (export inst_dir=$(prefix); ./tar_em_up.sh -B -n)
@echo "DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)"
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:
mkdir -p debian/purr-data && mv packages/linux_make/build/* debian/purr-data
......@@ -42,24 +60,19 @@ override_dh_auto_install:
# Remove some unneeded files.
cd debian/purr-data/ && rm -rf Makefile README.txt etc usr/share/emacs
cd debian/purr-data$(prefix)/lib/pd-l2ork/extra && rm -rf */*.pd_linux_o */*.la
ifeq ($(arch),ia32)
# This causes trouble in 32 bit builds (64 bit executable in the 32 bit nw.js distribution?), remove it.
cd debian/purr-data$(prefix)/lib/pd-l2ork && rm -rf bin/nw/minidump_stackwalk
endif
ifeq ($(arch),arm64)
# Same issue in arm64 builds.
cd debian/purr-data$(prefix)/lib/pd-l2ork && rm -rf bin/nw/minidump_stackwalk
endif
# Add the bash completion file again, and edit it accordingly.
mkdir -p debian/purr-data/etc/bash_completion.d
sed -e 's/pd-l2ork/purr-data/g' < scripts/bash_completion/pd-l2ork > debian/purr-data/etc/bash_completion.d/purr-data
# Edit the library paths in the default user.settings file.
cd debian/purr-data$(prefix)/lib/pd-l2ork && sed -e "s!/usr/lib/pd-l2ork!$(prefix)/lib/pd-l2ork!g" -i default.settings
# Replace the pd-l2ork desktop/mime files and icons with purr-data ones.
cd debian/purr-data/usr/share/applications && (sed -e 's/pd-l2ork/purr-data/g' -e 's/Pd-L2Ork/Purr-Data/g' < pd-l2ork.desktop > purr-data.desktop) && (sed -e 's/pd-l2ork/purr-data/g' -e 's/Pd-L2Ork/Purr-Data/g' < pd-l2ork-debug.desktop > purr-data-debug.desktop) && rm -f pd-l2ork*.desktop
cd debian/purr-data/usr/share/mime/packages && (sed -e 's/pd-l2ork/purr-data/g' < pd-l2ork.xml > purr-data.xml) && rm -f pd-l2ork.xml
cd debian/purr-data/usr/share/icons/hicolor/128x128/apps/ && rm -f pd-l2ork-k12*.png && mv pd-l2ork.png purr-data.png && mv pd-l2ork-red.png purr-data-red.png
cd debian/purr-data/usr/share/icons/hicolor/128x128/mimetypes/ && mv text-x-pd-l2ork.png text-x-purr-data.png
# Sanitize permissions.
cd debian/purr-data && chmod -R go-w * && chmod -R a+r * && chmod a-x .$(prefix)/lib/pd-l2ork/default.settings
find debian/purr-data$(prefix)/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
# http://deb.li/dhs2p.
......
......@@ -15,8 +15,12 @@ cvs_root_dir := $(shell cd $(CWD)/.. && pwd)
DESTDIR = $(CWD)/build/
BUILDLAYOUT_DIR = $(cvs_root_dir)/packages
ifeq ($(macos_target),)
macos_target = 10.9
endif
# turn on weak linking and dlopen support
export MACOSX_DEPLOYMENT_TARGET = 10.3
export MACOSX_DEPLOYMENT_TARGET = $(macos_target)
# default target
default: all
......@@ -44,20 +48,24 @@ DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
BUILDSRC_OS_NAME = $(OS_NAME)
WARN_FLAGS = -Wall -W -Wno-unused-parameter
CFLAGS = -DPD -I$(pd_src)/src $(WARN_FLAGS) $(DEBUG_CFLAGS) $(CFLAGS_ADD) -I$(gem_src)/src
CFLAGS = -DPD -D__USE_MINGW_ANSI_STDIO=1 -I$(pd_src)/src $(WARN_FLAGS) $(DEBUG_CFLAGS) $(CFLAGS_ADD) -I$(gem_src)/src
LDFLAGS =
LIBS = -lm
ifeq ($(OS_NAME),darwin)
# 10.4 Tiger
FAT_FLAGS = -arch ppc -arch ppc64 -arch i386
# FAT_FLAGS = -arch ppc -arch ppc64 -arch i386
# 10.5 Leopard
# FAT_FLAGS = -arch ppc -arch ppc7400 -arch ppc64 -arch i386 -arch x86_64
CFLAGS += -I/sw/include -I$(externals_src)/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN
LDFLAGS += -bundle -bundle_loader $(pd_src)/bin/pd-l2ork -undefined dynamic_lookup \
-L/sw/lib -weak_framework Carbon
# Check whether we have Homebrew or MacPorts, prefer the former.
# Homebrew links software into $HOMEBREW_PREFIX. If this isn't defined, we
# check for MacPorts in /opt/local, and finally fall back to /usr/local.
optlocal := $(shell test -n "$$HOMEBREW_PREFIX" && test -d $$HOMEBREW_PREFIX && echo $$HOMEBREW_PREFIX || (test -d /opt/local && echo /opt/local) || echo /usr/local)
usrlocal = $(optlocal)
CFLAGS += -I$(usrlocal)/include -I$(externals_src)/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN
LDFLAGS += -bundle -bundle_loader $(pd_src)/bin/pd-l2ork -undefined dynamic_lookup -L$(usrlocal)/lib
LIBS += -lc
DYLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup -read_only_relocs warning -L/sw/lib
DYLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup -read_only_relocs warning -L$(usrlocal)/lib
STRIP = strip -x
endif
ifeq ($(OS_NAME),linux)
......@@ -69,9 +77,10 @@ ifeq ($(OS_NAME),linux)
endif
ifeq ($(OS_NAME),windows)
BUILDSRC_OS_NAME = win
WINDOWS_HACKS = -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' \
-D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)'
WINDOWS_HACKS = -DO_NONBLOCK=1
# These don't seem to be needed:
# -D'srand48(n)=srand((n))' \
# -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)'
# -D'PROT_READ=1' \
# -D'MAP_PRIVATE=2' \
# -D'O_NDELAY=O_NONBLOCK'
......@@ -132,9 +141,11 @@ CXXFLAGS = $(CFLAGS)
ifeq ($(LIGHT),yes)
# minimal set of extensions for the "light" build
lib_targets = loaders-libdir pddp
# add specified externals to the light build
lib_targets += $(addons)
INCREMENTAL = yes
else
lib_targets = adaptive arraysize autotune bassemu boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease flatgui fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
lib_targets = adaptive arraysize autotune bassemu bendinfix boids bsaylor comport creb cxc cyclone disis earplug ekext ext13 fftease flatgui flite fluid freeverb ggee hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping markex maxlib mjlib moocow moonlib motex mrpeach oscx pan pdcontainer pddp pdlua pdogg plugin pmpd rjlib sigpack smlib tof unauthorized vbap windowing zexy
endif
# NEW (IN-PROGRESS): flext
......@@ -148,9 +159,10 @@ ifeq ($(OS_NAME),windows)
else
ifeq ($(OS_NAME),darwin)
# on Mac OS X 10.6/Snow Leopard don't build hid since it needs Carbon
lib_targets += pdp iem16 apple
ifneq ($(shell uname -r | sed 's|10\.[0-9][0-9]*\.[0-9][0-9]*|10|'),10)
lib_targets +=
ifeq ($(INCREMENTAL),yes)
lib_targets += pdp iem16 apple
else
lib_targets += gem pdp iem16 apple
endif
else ifneq ($(LIGHT),yes)
# GNU/Linux, BSD, IRIX, etc. (we use exported variable INCREMENTAL to
......@@ -323,6 +335,7 @@ autotune:
autotune_install:
make -C $(externals_src)/autotune DESTDIR="$(DESTDIR)" \
objectsdir="$(objectsdir)" install
install -d $(DESTDIR)$(objectsdir)/images
install -p $(externals_src)/autotune/autotune_scale_warp.png \
$(DESTDIR)/$(objectsdir)/images
......@@ -353,6 +366,21 @@ bassemu_clean:
make -C $(externals_src)/bassemu~ clean
#------------------------------------------------------------------------------#
# BENDINFIX
bendinfix:
make -C $(externals_src)/bendinfix PD_PATH=$(pd_src) \
pdbinpath=$(pd_src)/src CFLAGS="$(CFLAGS_ADD)"
bendinfix_install:
make -C $(externals_src)/bendinfix DESTDIR="$(DESTDIR)" \
objectsdir="$(objectsdir)" install
bendinfix_clean:
make -C $(externals_src)/bendinfix clean
#------------------------------------------------------------------------------#
# BOIDS
boids:
......@@ -369,7 +397,7 @@ boids_clean:
#------------------------------------------------------------------------------#
# BSAYLOR
bsaylor:
make -C $(externals_src)/bsaylor PD_PATH=$(pd_src) CFLAGS="$(CFLAGS)"
make -C $(externals_src)/bsaylor PD_PATH=$(pd_src) CFLAGS="$(CFLAGS) -fno-strict-aliasing" LDFLAGS="$(LDFLAGS)"
bsaylor_install:
make -C $(externals_src)/bsaylor \
......@@ -461,12 +489,6 @@ cyclone_clean:
#------------------------------------------------------------------------------#
# DISIS
disis:
ifneq ($(OS_NAME),windows)
ifneq ($(OS_NAME),darwin)
cd $(externals_src)/disis/cwiid && aclocal && autoconf && \
./configure --with-python=python2 && make
endif
endif
make -C $(externals_src)/disis PD_PATH=$(pd_src) pdbinpath=$(pd_src)/src CFLAGS="$(CFLAGS_ADD)"
disis_install:
......@@ -630,7 +652,7 @@ flib_clean:
fluid:
make -C $(externals_src)/fluid~ PD_PATH=$(pd_src) \
pdbinpath=$(pd_src)/src CFLAGS="$(CFLAGS_ADD)"
pdbinpath=$(pd_src)/src CFLAGS="$(CFLAGS_ADD) -I$(usrlocal)/include" LDFLAGS="$(LDFLAGS)"
fluid_install:
make -C $(externals_src)/fluid~ DESTDIR="$(DESTDIR)" \
......@@ -657,46 +679,86 @@ GEM_NAME = Gem
$(gem_src)/configure:
cd $(gem_src) && ./autogen.sh
ifeq ($(MSYSTEM),MINGW32)
msys_prefix = /mingw32
else ifeq ($(MSYSTEM),MINGW64)
msys_prefix = /mingw64
else
msys_prefix = /usr
endif
$(gem_src)/Gem.dll: $(gem_src)/configure
cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
--host=i686-w64-mingw32 \
--without-ALL \
--with-jpeg \
--with-jpeg-cflags="-I/mingw32/include" \
--with-jpeg-libs="-L/mingw32/lib -ljpeg" \
--with-jpeg-cflags="-I$(msys_prefix)/include" \
--with-jpeg-libs="-L$(msys_prefix)/lib -ljpeg" \
--with-ftgl \
--with-ftgl-cflags="-I/mingw32/include -I/mingw32/include/freetype2" \
--with-ftgl-libs="-L/mingw32/lib -lftgl" \
--with-ftgl-cflags="-I$(msys_prefix)/include -I$(msys_prefix)/include/freetype2" \
--with-ftgl-libs="-L$(msys_prefix)/lib -lftgl" \
--with-vfw32 \
--prefix=$(prefix) \
--libdir=$(objectsdir) \
--with-pd=$(DESTDIR)
$(MAKE) -C $(gem_src)
$(MAKE) $(GEM_MAKEFLAGS) -C $(gem_src)
$(gem_src)/Gem.pd_linux: $(gem_src)/configure
test -s $(gem_src)/Gem.pd_linux || \
cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
--prefix=$(prefix) \
--with-video=plugins \
--with-film=plugins \
--with-pd=$(pd_src)
$(MAKE) -C $(gem_src)
$(MAKE) $(GEM_MAKEFLAGS) -C $(gem_src)
# Mac: This is still a bit experimental. At present, many of the window
# backends seem to be at least half-broken on recent macOS versions, including
# the native gemmacoswindow, which the wiki recommends. For me, the SDL2
# backend works best, on Mojave at least, so that's what we include as the
# default here. NOTES: In MacPorts, libquicktime is unmaintained and doesn't
# build, so it is currently excluded from the MacPorts build. AVF, which is
# supposed to replace libquicktime, is enabled by default on the Mac, but
# right now it only seems to work for video capture, not loading or recording.
# We also exclude ImageMagick, which is needed for improved image support,
# because it currently isn't in our OSX build requirements. But if you have it
# (it's available in both Homebrew and MacPorts), you can enable it below.
ifeq ($(optlocal),/opt/local)
# MacPorts
gem_quicktime = --without-libquicktime
else
# Homebrew
gem_quicktime = --with-libquicktime --with-libquicktime-LIBS="-L$(usrlocal)/lib -lquicktime"
endif
# Uncomment to enable ImageMagick support. This needs imagemagick from Hombrew
# or ImageMagick from MacPorts.
#gem_magick = --with-MagickCore --with-MagickCore-CFLAGS="$(shell pkg-config --cflags MagickCore)" --with-MagickCore-LIBS="$(shell pkg-config --libs MagickCore)"
# Adjust this as needed/wanted. If you comment this out, you'll get the
# default gemmacoswindow which doesn't work for me, YMMV.
gem_window = --with-sdl2 --with-sdl2-LIBS="-L$(usrlocal)/lib -lSDL2" --with-defaultwindow=gemsdl2window
# As of automake 1.16.5 from homebrew, libtool compilation of Objective C++
# sources seem to be broken. As a work-around, the LIBTOOLFLAGS=--tag=CXX
# setting appears to fix that.
export LIBTOOLFLAGS = --tag=CXX
$(gem_src)/Gem.pd_darwin: $(gem_src)/configure
cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
PKG_FTGL_CFLAGS="-I/sw/include -I/sw/include/freetype2 -I/sw/include/FTGL" \
--prefix=$(prefix) \
--libdir=$(objectsdir) \
--without-ALL \
--with-ftgl --with-ftgl-libs=/sw/lib \
--with-artoolkit-includes=/sw/include --with-artoolkit-libs=/sw/lib \
--with-video=plugins \
--with-film=plugins \
--without-QuickTime-framework --without-Carbon-framework \
--with-ftgl --with-ftgl-LIBS="-L$(usrlocal)/lib -lftgl" \
--with-tiff --with-tiff-LIBS="-L$(usrlocal)/lib -ltiff" \
--with-jpeg --with-jpeg-LIBS="-L$(usrlocal)/lib -ljpeg" \
$(gem_quicktime) $(gem_magick) \
$(gem_window) \
--without-ndi --without-DeckLink \
--with-pd=$(pd_src)
$(MAKE) -C $(gem_src)
$(MAKE) $(GEM_MAKEFLAGS) -C $(gem_src)
gem: $(gem_src)/Gem.$(EXTENSION)
......@@ -1287,13 +1349,15 @@ moocow_clean:
$(MAKE) -C $(externals_src)/moocow/extended distclean
-rm -f -- $(MOOCOW_DIR)/*.bak
-rm -f -- $(MOOCOW_DIR)/*.*~
-rm -rf -- $(externals_src)/moocow/*/common/*
-rm -rf -- $(externals_src)/moocow/*/a.out.dSYM/*
cp -f $(MOOCOW_DIR)/../gfsm/gfsm/src/libgfsm/default/* $(MOOCOW_DIR)/../gfsm/gfsm/src/libgfsm/
#------------------------------------------------------------------------------#
# MOONLIB
moonlib:
make -C $(externals_src)/moonlib PD_PATH=$(pd_src) CFLAGS="$(CFLAGS)"
make -C $(externals_src)/moonlib PD_PATH=$(pd_src) CFLAGS="$(CFLAGS) -fno-strict-aliasing"
moonlib_install:
make -C $(externals_src)/moonlib DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
......@@ -1321,6 +1385,7 @@ motex_clean:
# MRPEACH
MRPEACH_NAME=mrpeach
MRPEACH_OBJECTS := $(wildcard $(externals_src)/mrpeach/*/*.c)
mrpeach: WARN_FLAGS=-Wno-pedantic-ms-format
mrpeach: $(MRPEACH_OBJECTS:.c=.$(EXTENSION))
mrpeach_install: mrpeach
......@@ -1388,6 +1453,7 @@ oscx_clean:
-$(MAKE) -C $(externals_src)/OSCx CC=gcc clean
-rm $(externals_src)/OSCx/Makefile
-rm $(externals_src)/OSCx/configure
-rm -f -- $(cvs_root_dir)/externals/OSCx/*/Makefile
......@@ -1416,13 +1482,23 @@ pddp_clean:
#------------------------------------------------------------------------------#
# PDLUA
# FLITE
flite:
make -C $(externals_src)/pd-flite PDINCLUDEDIR="$(pd_src)/src" PDBINDIR="$(pd_src)/src"
flite_install:
make -C $(externals_src)/pd-flite DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
flite_clean:
make -C $(externals_src)/pd-flite clean
LUA_CFLAGS = $(shell (pkg-config --cflags lua5.3 || pkg-config --cflags lua5.2 || pkg-config --cflags lua) 2> /dev/null)
LUA_LIBS = $(shell (pkg-config --libs lua5.3 || pkg-config --libs lua5.2 || pkg-config --libs lua) 2> /dev/null)
#------------------------------------------------------------------------------#
# PDLUA
pdlua:
make -C $(externals_src)/pd-lua LUA_CFLAGS="$(LUA_CFLAGS)" LUA_LIBS="$(LUA_LIBS)" PD_PATH="$(pd_src)" PD_LIB="$(pd_src)/src" CFLAGS="$(CFLAGS)"
make -C $(externals_src)/pd-lua PDINCLUDEDIR="$(pd_src)/src" PDBINDIR="$(pd_src)/src"
pdlua_install:
make -C $(externals_src)/pd-lua DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
......@@ -1434,7 +1510,7 @@ pdlua_clean:
#------------------------------------------------------------------------------#
# PDOGG
pdogg:
make -C $(externals_src)/pdogg PD_PATH=$(pd_src) CFLAGS="$(CFLAGS)"
make -C $(externals_src)/pdogg PD_PATH=$(pd_src) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
pdogg_install:
make -C $(externals_src)/pdogg DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
......@@ -1457,7 +1533,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 PD_CPPFLAGS="-I$(pd_src)/src -I$(usrlocal)/include" \
$(PDP_OPTIONS)
$(externals_src)/pdp/pdp.$(EXTENSION): $(externals_src)/pdp/Makefile.config
......@@ -1492,6 +1568,7 @@ pdp_clean:
-find $(externals_src)/pdp -name '*.bak' | xargs rm -f --
-rm -f -- $(externals_src)/pdp/Makefile.config
-rm -f -- $(externals_src)/pdp/configure
-rm -f -- $(externals_src)/pdp/include/pdp_config.h
#------------------------------------------------------------------------------#
......@@ -1798,7 +1875,7 @@ toxy_clean:
#------------------------------------------------------------------------------#
# UNAUTHORIZED
unauthorized:
make -C $(externals_src)/unauthorized CFLAGS="$(CFLAGS)" \
make -C $(externals_src)/unauthorized CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
PD_PATH=$(pd_src) PD_INCLUDE=$(pd_src)/src
unauthorized_install:
......@@ -1851,59 +1928,16 @@ windowing_clean:
ZEXY_NAME = zexy
zexy_src := $(externals_src)/$(ZEXY_NAME)
$(zexy_src)/configure: $(zexy_src)/configure.ac
cd $(zexy_src) && ./autogen.sh
$(zexy_src)/Makefile: $(zexy_src)/configure $(zexy_src)/Makefile.am $(zexy_src)/src/Makefile.am
cd $(zexy_src) && ./configure --disable-library \
--with-extension=$(EXTENSION) \
--prefix=$(prefix) \
--libdir=$(objectsdir) \
--with-pd=$(pd_src)
zexy: $(zexy_src)/Makefile
$(MAKE) -C $(zexy_src)
$(MAKE) -C $(zexy_src) PDINCLUDEDIR=$(pd_src)/src PDBINDIR=$(pd_src)/src
zexy_install: zexy
$(MAKE) -C $(zexy_src) DESTDIR=$(DESTDIR) prefix=$(prefix) \
libdir=$(objectsdir) pkglibdir=$(objectsdir)/$(ZEXY_NAME) install
# remove all .la files (libtool archives) created by autotools
find $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) -name "*.la" -exec rm {} \;
find $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) -name "*.dll.a" -exec rm {} \;
# add missing aliases
# can't do these on Windows because FAT, NTFS don't support these chars in filenames
# on Windows, these are faked in by loading them as libs
#ifneq ($(OS_NAME),windows)
# test -e $(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/..$(EXTENSION) || \
# ln -s 0x2e.$(EXTENSION) \
# $(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/..$(EXTENSION)
# test -e '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/&&~.$(EXTENSION)' || \
# ln -s 0x260x26_tilde.$(EXTENSION) \
# '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/&&~.$(EXTENSION)'
# test -e '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/<~.$(EXTENSION)' || \
# ln -s 0x3c_tilde.$(EXTENSION) \
# '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/<~.$(EXTENSION)'
# test -e '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/==~.$(EXTENSION)' || \
# ln -s 0x3d0x3d_tilde.$(EXTENSION) \
# '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/==~.$(EXTENSION)'
# test -e '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/>~.$(EXTENSION)' || \
# ln -s 0x3e_tilde.$(EXTENSION) \
# '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/>~.$(EXTENSION)'
# test -e '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/||~.$(EXTENSION)' || \
# ln -s 0x7c0x7c_tilde.$(EXTENSION) \
# '$(DESTDIR)$(objectsdir)/$(ZEXY_NAME)/||~.$(EXTENSION)'
#endif
libdir=$(objectsdir) pkglibdir=$(objectsdir) install
zexy_clean:
cd $(externals_src)/zexy && ./autogen.sh
cd $(externals_src)/zexy
-$(MAKE) -C $(externals_src)/zexy clean
-rm -rf -- $(externals_src)/zexy/autom4te.cache
-rm -f -- $(externals_src)/zexy/aclocal.m4
-rm -f -- $(externals_src)/zexy/libtool
-rm -f -- $(externals_src)/zexy/ltmain.sh
-rm -f -- $(externals_src)/zexy/m4/lt*.m4
-rm -f -- $(externals_src)/zexy/m4/libtool.m4
-rm -f -- $(externals_src)/zexy/configure
-rm -f -- $(externals_src)/zexy/src/*.o
......@@ -2345,7 +2379,7 @@ etags_Darwin:
etags -a $(externals_src)/hcs/hid/HID\ Utilities\ Source/*.[ch]
find /System/Library/Frameworks -type f -name \*.h -exec etags -a '{}' \;
find /Library/Frameworks -type f -name \*.h -exec etags -a '{}' \;
find /sw/include -type f -name \*.h -exec etags -a '{}' \;
find /usr/local/include/ -type f -name \*.h -exec etags -a '{}' \;
etags_Linux:
......
......@@ -78,7 +78,7 @@ if test -z "$GCC"; then
else
case $host in
*86*-linux*)
CFLAGS="$CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O2 -fPIC"
CFLAGS="$CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O2 -fno-strict-aliasing -fPIC"
LDFLAGS="-Wl,--export-dynamic -shared"
dnl we could test for bad glibc here, but don't
pd_suffix=pd_linux
......@@ -115,7 +115,7 @@ else
LIBS="-L../../../pd/src -L../../../pd/bin -L../../../pd/obj -lpd -lm -lwsock32"
;;
*-*-darwin*)
CFLAGS="$CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O3 "
CFLAGS="$CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O3 -fno-strict-aliasing "
LDFLAGS=" -bundle -bundle_loader ../../../pd/bin/pd-l2ork -flat_namespace "
pd_suffix=pd_darwin
LIBS="-lc -lm"
......
#CFLAGS= -O2 -Wall -fPIC
ARFLAGS=srv
# uncomment the following for linux/win
# DEFS= -Dunix
LIB=libOSC.a
CFLAGS=-g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src
INCLUDES=-I../libOSC -I../../pd/src -I../../../pd/src -I../src
LIBOBJS= ${LIB}(OSC-client.o) ${LIB}(OSC-timetag.o)
all: ${LIBOBJS}
.c.a:
${CC} -c ${CFLAGS} ${INCLUDES} ${DEFS} $<
${AR} ${ARFLAGS} $@ $*.o
rm -f $*.o
test_OSC: test_OSC.o ${LIB}
$(CC) -o test_OSC test_OSC.o ${LIB}
test_OSC_timeTag: test_OSC_timeTag.o OSC-timetag.o
$(CC) -o test_OSC_timeTag test_OSC_timeTag.o OSC-timetag.o
clean:
rm -f ${LIB} *.o
......@@ -52,10 +52,11 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#define DONE 4 /* All open bundles have been closed, so can't write
anything else */
#include <stdio.h>
#ifdef WIN32
#include <winsock2.h>
#include <io.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
......@@ -68,7 +69,6 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#ifdef unix
#include <netinet/in.h>
#include <stdio.h>
#endif
#include "OSC-client.h"
......
......@@ -50,7 +50,7 @@ OSCTimeTag OSCTT_BiggestPossibleTimeTag(void) {
OSCTimeTag OSCTT_PlusSeconds(OSCTimeTag original, float secondsOffset) {
int8 offset = (int8) (secondsOffset * TWO_TO_THE_32_FLOAT);
/* printf("* OSCTT_PlusSeconds %llx plus %f seconds (i.e., %lld offset) is %llx\n", original,
/* printf("* OSCTT_PlusSeconds %zx plus %f seconds (i.e., %lld offset) is %zx\n", original,
secondsOffset, offset, original + offset); */
return original + offset;
......@@ -58,7 +58,7 @@ OSCTimeTag OSCTT_PlusSeconds(OSCTimeTag original, float secondsOffset) {
int OSCTT_Compare(OSCTimeTag left, OSCTimeTag right) {
#if 0
printf("***** OSCTT_Compare(%llx, %llx): %d\n", left, right,
printf("***** OSCTT_Compare(%zx, %zx): %d\n", left, right,
(left<right) ? -1 : ((left == right) ? 0 : 1));
#endif
if (left < right) {
......@@ -107,7 +107,7 @@ OSCTimeTag OSCTT_CurrentTime(void) {
result += usecOffset;
/* printf("* OSCTT_CurrentTime is %llx\n", result); */
/* printf("* OSCTT_CurrentTime is %zx\n", result); */
return result;
}
......
......@@ -108,7 +108,7 @@ main() {
printf("Testing time tags\n");
tt = OSCTT_CurrentTime();
printf("Time now is %llx\n", tt);
printf("Time now is %zx\n", tt);
printf("Testing bundles\n");
if (OSC_openBundle(b, tt)) {
......