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 (471)
Showing
with 1009 additions and 350 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
...@@ -88,7 +88,7 @@ osx_10.11_x86_64_dmg: ...@@ -88,7 +88,7 @@ osx_10.11_x86_64_dmg:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day expire_in: 1 day
paths: paths:
- Pd*.dmg - Purr*.dmg
osx_10.8_x86_64_dmg: osx_10.8_x86_64_dmg:
tags: tags:
...@@ -106,7 +106,7 @@ osx_10.8_x86_64_dmg: ...@@ -106,7 +106,7 @@ osx_10.8_x86_64_dmg:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day expire_in: 1 day
paths: paths:
- Pd*.dmg - Purr*.dmg
windows_x86_64_innosetup: windows_x86_64_innosetup:
tags: tags:
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
url = https://github.com/pd-l2ork/cwiid url = https://github.com/pd-l2ork/cwiid
[submodule "Gem"] [submodule "Gem"]
path = Gem path = Gem
url = https://git.purrdata.net/aggraef/gem.git url = https://github.com/agraef/Gem.git
[submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"] [submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"]
path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi
url = https://git.purrdata.net/jwilkes/wiringPi.git url = https://git.purrdata.net/jwilkes/wiringPi.git
[submodule "externals/pd-lua"] [submodule "externals/pd-lua"]
path = 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 1ab32e47ec2362fc6257c574abb31c539d5204ac 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 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 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. and without any costs under the appropriate license terms, as detailed below.
...@@ -32,21 +32,21 @@ for details. ...@@ -32,21 +32,21 @@ for details.
Copyright (c) by various authors, please see the included license files for Copyright (c) by various authors, please see the included license files for
details 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 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 library directory of the installed application. Each of these items has its
own open-source license under which it is distributed (mostly different own open-source license under which it is distributed (mostly different
variations of the BSD license or the GPL), so please check the corresponding 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 license files in the source or the extra directory of the installed package
for license information pertaining to each of the different software modules. 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 Copyright (c) by Hans-Christoph Steiner, Ico Bukvic, Jonathan Wilkes and
others 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 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 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* that this license applies to all parts of this package which are *not*
......
...@@ -95,11 +95,25 @@ endif ...@@ -95,11 +95,25 @@ endif
install_vars = DESTDIR=$(firstword $(wildcard $(CURDIR)/packages/*/build)) prefix=$(prefix) 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 # You can set CFLAGS to whatever special compile options are needed. E.g., to
# build the double precision version: CFLAGS = -DPD_FLOATSIZE=64 # build the double precision version: CFLAGS = -DPD_FLOATSIZE=64
CFLAGS = CFLAGS =
export 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., # 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 # to prevent building Gem (which takes an eternity to build): blacklist = gem
blacklist = blacklist =
...@@ -138,7 +152,7 @@ light-double: ...@@ -138,7 +152,7 @@ light-double:
make -C externals $(@:%_ext=%) $(@:%_ext=%_install) $(install_vars) make -C externals $(@:%_ext=%) $(@:%_ext=%_install) $(install_vars)
checkout: checkout:
git submodule update --init git submodule update --init --recursive
clean: clean:
test "$(shell uname -s)" = "Darwin" && make -C packages/darwin_app clean || true test "$(shell uname -s)" = "Darwin" && make -C packages/darwin_app clean || true
...@@ -243,6 +257,8 @@ submodules = $(sort $(shell test -d .git && (git config --file .gitmodules --get ...@@ -243,6 +257,8 @@ submodules = $(sort $(shell test -d .git && (git config --file .gitmodules --get
dist: $(debsrc) 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 # Determine the build version which needs git to be computed, so we can't do
# it in a stand-alone build from a tarball. # 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) 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)
...@@ -259,6 +275,12 @@ $(debsrc): ...@@ -259,6 +275,12 @@ $(debsrc):
# Pre-generate and put s_version.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). # 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 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. # Create the source tarball.
tar cfz $(debsrc) $(debdist) tar cfz $(debsrc) $(debdist)
rm -rf $(debdist) rm -rf $(debdist)
## Pd-L2Ork ## Purr-Data
Maintainers: Maintainers:
* Ivica Ico Bukvic <ico@vt.edu> * Ivica Ico Bukvic <ico@vt.edu> (Pd-l2ork)
* Albert Graef <aggraef@gmail.com> * Jonathan Wilkes <jancsika@yahoo.com> (Purr Data)
* Jonathan Wilkes <jancsika@yahoo.com> * Albert Graef <aggraef@gmail.com> (GitHub Mirror, JGU Packages)
[Mailing List](http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev) Contact: [DISIS mailing list](http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev)
**GitLab Repository:** <https://git.purrdata.net/jwilkes/purr-data>
Official Purr Data source code in the "master" branch.
**GitHub Mirror:** <https://github.com/agraef/purr-data>
Mirrors the GitLab "master" branch, and also has "release" and "testing"
branches, binary packages, a website, and a wiki (WIP).
Contents:
* [Downloads](#downloads) * [Downloads](#downloads)
* [One Paragraph Overview](#one-paragraph-overview) * [One Paragraph Overview](#one-paragraph-overview)
...@@ -17,7 +28,7 @@ Maintainers: ...@@ -17,7 +28,7 @@ Maintainers:
* [Build Guide](#build-guide) * [Build Guide](#build-guide)
* [Gnu/Linux](#linux) * [Gnu/Linux](#linux)
* [OSX](#osx-64-bit-using-homebrew) * [OSX](#osx-64-bit-using-homebrew)
* [Windows](#windows-32-bit-using-msys2) * [Windows](#windows-64-bit-using-msys2)
* [Code of Conduct](#code-of-conduct) * [Code of Conduct](#code-of-conduct)
* [Project Governance](#project-governance) * [Project Governance](#project-governance)
* [Contributor Guide](#contributor-guide) * [Contributor Guide](#contributor-guide)
...@@ -52,7 +63,7 @@ methods, as well as for realizing complex systems for large-scale projects. ...@@ -52,7 +63,7 @@ methods, as well as for realizing complex systems for large-scale projects.
### Goals ### Goals
Pd-L2ork has the following goals: Purr-Data has the following goals:
1. Documentation. We like documentation. It's like code, except friendly. 1. Documentation. We like documentation. It's like code, except friendly.
2. Be reliable. Binary releases must be usable for performances and 2. Be reliable. Binary releases must be usable for performances and
...@@ -78,48 +89,43 @@ For Ico Bukvic's original Pd-l2ork website see: ...@@ -78,48 +89,43 @@ For Ico Bukvic's original Pd-l2ork website see:
<http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/> <http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/>
(Note that the latter link is more about "classic" Pd-L2Ork a.k.a. Pd-L2Ork 1.0,
see below. But it also contains some information about Purr Data.)
### Relationship of Purr Data to Pure Data ### Relationship of Purr Data to Pure Data
There are three maintained distributions of Pure Data: At the time of this writing, there are four maintained distributions of Pure
Data, two of which (Purr Data, Pd-l2ork) belong to the Pd-extended lineage.
1. Purr Data. This is the 2.0 version of Pd-l2ork. It ships with lots of 1. Purr Data. This started out as the 2.0 version of Pd-l2ork. It ships with
external libraries and uses a modern GUI written using HTML5. lots of external libraries and uses a modern GUI written using HTML5.
2. Pd-L2Ork 1.0, the version used by Ivica Bukvic for his laptop orchestra. 2. Pd-l2ork is the version used by Ivica Bukvic for his laptop orchestra.
Pd-l2ork 1.0 uses tcl/tk (and tkpath) for the GUI. You can find it Pd-l2ork 1.0 used tcl/tk (and tkpath) for the GUI. Pd-l2ork 2.x is a fork
[here](http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/). of an earlier Purr Data version which is developed separately. You can find
these [here](http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/).
3. Pure Data "Vanilla". Miller Puckette's personal version which he hosts on 3. Pure Data "Vanilla". Miller Puckette's personal version which he hosts on
his website and maintains. It doesn't come with external libraries his website and maintains. It doesn't come with external libraries
pre-installed, but it does include an interface you can use to search pre-installed, but it does include an interface you can use to search
and install external libraries maintained and packaged by other developers. and install external libraries maintained and packaged by other developers.
4. Plugdata. A new libpd-based distribution of Pure Data which can be run as a
plugin. See <https://plugdata.org/>.
### Downloads ### Downloads
**Windows and OSX:** **Windows, Ubuntu, and Mac OSX:**
Releases are done on GitHub: Releases are done on Albert Gräf's GitHub mirror, which also provides a
website, wiki, additional documentation, and an up-to-date mirror of the
<https://github.com/jonwwilkes/purr-data/releases> source code repository.
This is where the packages first come out as soon as Jonathan Wilkes releases
them. The same packages can also be dowloaded (usually shortly after release)
on Albert Gräf's mirror, which also provides a website, wiki, additional
documentation, and an up-to-date mirror of the source code repository:
<https://github.com/agraef/purr-data/releases> <https://github.com/agraef/purr-data/releases>
**Linux:** **More Linux packages:**
Packages for various Linux distributions (including Arch, Debian, Ubuntu, and Packages for various Linux distributions (including Arch, Debian, Ubuntu, and
openSUSE) are available through the JGU package repositories maintained by Fedora) are available through the JGU package repositories maintained by
Albert Gräf on the OBS (Open Build System). Detailed instructions can be found Albert Gräf on the OBS (Open Build System). Detailed instructions can be found
[here](https://github.com/agraef/purr-data/wiki/Installation#linux). [here](https://github.com/agraef/purr-data/wiki/Installation#linux).
You can also just go to the You can also just go to the [OBS Download](https://software.opensuse.org/download/package?package=purr-data&project=home%3Aaggraef%3Apurr-data-jgu), pick your Linux system, and follow
[OBS Download](https://software.opensuse.org/download/package?package=purr-data&project=home%3Aaggraef), the instructions.
pick your Linux system, and follow the instructions.
### Build Guide ### Build Guide
...@@ -146,9 +152,7 @@ Hard drive space required: *roughly 2.5 GB* ...@@ -146,9 +152,7 @@ Hard drive space required: *roughly 2.5 GB*
sudo apt-get update && sudo apt-get upgrade sudo apt-get update && sudo apt-get upgrade
1. Install the dependencies (please note that the packages may be named 1. Install the dependencies:
slightly differently for different Linux distributions; the given names are
for Debian/Ubuntu)
sudo apt-get install bison flex automake libasound2-dev \ sudo apt-get install bison flex automake libasound2-dev \
libjack-jackd2-dev libtool libbluetooth-dev libgl1-mesa-dev \ libjack-jackd2-dev libtool libbluetooth-dev libgl1-mesa-dev \
...@@ -161,8 +165,16 @@ Hard drive space required: *roughly 2.5 GB* ...@@ -161,8 +165,16 @@ Hard drive space required: *roughly 2.5 GB*
libslv2-dev dssi-utils vco-plugins wah-plugins fil-plugins \ libslv2-dev dssi-utils vco-plugins wah-plugins fil-plugins \
mda-lv2 libmp3lame-dev libspeex-dev libgsl0-dev \ mda-lv2 libmp3lame-dev libspeex-dev libgsl0-dev \
portaudio19-dev liblua5.3-dev python-dev libsmpeg0 libjpeg62-turbo \ portaudio19-dev liblua5.3-dev python-dev libsmpeg0 libjpeg62-turbo \
flite1-dev libgsm1-dev libgtk2.0-dev git libstk0-dev \ libgsm1-dev libgtk2.0-dev git libstk0-dev \
libfluidsynth-dev fluid-soundfont-gm byacc libfluidsynth-dev fluid-soundfont-gm byacc \
python3-markdown
**Note:** The given package names are for a generic Debian/Ubuntu system.
However, package names and versions vary *a lot* between different Linux
distributions and releases, thus it's impossible to give a definitive and
up-to-date package list here. Please consult your distribution's
documentation and package manager to find the exact package names for your
system.
2. The gui toolkit may require installing the following extra dependencies 2. The gui toolkit may require installing the following extra dependencies
...@@ -202,13 +214,26 @@ Hard drive space required: *roughly 2 GB* ...@@ -202,13 +214,26 @@ Hard drive space required: *roughly 2 GB*
brew install python brew install python
brew install lua brew install lua
brew install fluidsynth brew install fluidsynth
brew install faac
brew install jpeg
brew install lame brew install lame
brew install libvorbis brew install libvorbis
brew install speex brew install speex
brew install gsl brew install gsl
brew install libquicktime brew install libquicktime
brew install sdl2
brew install pkg-config brew install pkg-config
You'll also need to install the python markdown module to generate the
platform-specific release notes (ReadMe.html, Welcome.html):
pip3 install markdown
**Note:** Depending on your macOS and Xcode version, the 10 minutes
estimate for this step may be a overly optimistic. Some build dependencies
may require recompilation which can take a long time (up to several hours,
if it includes a complete build of, e.g., gcc and cmake).
3. Clone the Purr-Data repository *(10 minutes)* 3. Clone the Purr-Data repository *(10 minutes)*
git clone https://git.purrdata.net/jwilkes/purr-data.git git clone https://git.purrdata.net/jwilkes/purr-data.git
...@@ -224,7 +249,7 @@ Hard drive space required: *roughly 2 GB* ...@@ -224,7 +249,7 @@ Hard drive space required: *roughly 2 GB*
6. There should now be a .dmg file in your current directory, which lets you 6. There should now be a .dmg file in your current directory, which lets you
install the app in the usual way install the app in the usual way
#### Windows 32-bit Using msys2 #### Windows 64-bit Using msys2
Time to build: *roughly 1.5 hours-- 30 minutes of this is for Gem alone* Time to build: *roughly 1.5 hours-- 30 minutes of this is for Gem alone*
Hard drive space required to build: *rougly 2.5 GB* Hard drive space required to build: *rougly 2.5 GB*
...@@ -235,50 +260,17 @@ not have any spaces in it, which would otherwise cause trouble during the ...@@ -235,50 +260,17 @@ not have any spaces in it, which would otherwise cause trouble during the
build. Never try using your Windows home directory for this purpose instead, build. Never try using your Windows home directory for this purpose instead,
since it will usually contain spaces, making the build fail. since it will usually contain spaces, making the build fail.
1. Download and install [msys2](https://msys2.github.io/) *(5 minutes)* 1. In a browser, navigate to: `https://git.purrdata.net/jwilkes/ci-runner-setup/-/raw/master/win64_install_build_deps.ps1`
There are two installers-- one for 32-bit Windows systems (i686) and one for 2. Select all with `<control-a>`
64-bit Windows (x86_64). Be sure you know which 3. Right-click and choose "Copy"
[version](http://windows.microsoft.com/en-us/windows/32-bit-and-64-bit-windows) 4. In the Start menu type `PowerShell ISE` and click the "Windows Powershell ISE" app that pops up.
of Windows you are running and download the appropriate installer. 5. In the Powershell ISE window menu, choose File -> New
Note: don't run the shell after installation finishes. You'll do that 6. In the area with the white background, right-click and choose "Paste"
manually in step 3. 7. Click the `Run Script` arrow in the toolbar *(20 minutes)*
8. If there were no errors in the script, msys2 and Inno Setup are now installed.
2. Download and install the [inno setup Quickstart Pack](http://www.jrsoftware.org/isdl.php) which includes the Script Editor *(5 minutes)* 9. Open the directory "C:\msys64" and click `mingw64.exe`
10. Download the source code *(3-6 minutes)*
3. Run the "MSYS2 MinGW 32-bit" shell *(less than a minute)* In the msys terminal window, issue the following command to create a new directory "purr-data" and clone the repository to it:
msys2 adds three Start Menu items for different "flavors" of shell:
+ MSYS2 MinGW __32-bit__ <- click this one!
+ MSYS2 MinGW 64-bit
+ MSYS2 MSYS
4. Install the dependencies *(5-10 minutes)*
Once the shell opens, we need to install the dependencies for building
Purr Data. First we need to update all the packages:
pacman -Syu
After closing and reopening the shell as prompted, you may need to do it
again:
pacman -Syu
Now everything should be up-to-date. Issue the following command:
pacman -S autoconf automake git libtool \
make mingw-w64-i686-dlfcn mingw-w64-i686-fftw \
mingw-w64-i686-fluidsynth \
mingw-w64-i686-SDL2 \
mingw-w64-i686-ftgl mingw-w64-i686-fribidi \
mingw-w64-i686-ladspa-sdk mingw-w64-i686-lame \
mingw-w64-i686-libsndfile mingw-w64-i686-libvorbis \
mingw-w64-i686-lua mingw-w64-i686-toolchain \
mingw-w64-i686-libjpeg-turbo \
mingw-w64-i686-speex \
rsync unzip wget
5. Download the source code *(3-6 minutes)*
Issue the following command to create a new directory "purr-data" and clone
the repository to it:
git clone https://git.purrdata.net/jwilkes/purr-data.git git clone https://git.purrdata.net/jwilkes/purr-data.git
...@@ -293,33 +285,6 @@ since it will usually contain spaces, making the build fail. ...@@ -293,33 +285,6 @@ since it will usually contain spaces, making the build fail.
8. Look in the top level source directory and double-click the setup file to 8. Look in the top level source directory and double-click the setup file to
start installing Purr Data on your system or run `./"setup file name"` in MSYS2 shell. start installing Purr Data on your system or run `./"setup file name"` in MSYS2 shell.
#### Windows 64-bit Using msys2
The instructions are exactly the same as for the 32 bit build (see above), but
the build needs to be done using mingw64 instead of mingw32. That is:
- in the Start menu, type MSYS2 MinGW x64 to enter the 64-bit msys2 environment
- Install the mingw64 packages for the dependencies. These should be the same as
the i686 packages listed under dependencies above, but with x86_64 instead of
i686 in the package names. Here's the current list you can copy and paste for
convenience:
pacman -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 \
rsync unzip wget
- Use the MSYS2 MinGW 64-bit shell (rather than the 32-bit shell) to do the
build.
### Code of Conduct ### Code of Conduct
1. No sarcasm, please. 1. No sarcasm, please.
...@@ -329,7 +294,7 @@ build. ...@@ -329,7 +294,7 @@ build.
has yet to be written, you're doing it wrong. has yet to be written, you're doing it wrong.
4. If working on something for the first time, ask to be mentored. 4. If working on something for the first time, ask to be mentored.
5. If no one asked you to mentor them, don't teach. 5. If no one asked you to mentor them, don't teach.
6. It is better to let small things go then to risk taking time away from 6. It is better to let small things go than to risk taking time away from
solving bigger problems. solving bigger problems.
It is a bad idea to break this Code of Conduct *even if* no one complains It is a bad idea to break this Code of Conduct *even if* no one complains
......
...@@ -101,8 +101,8 @@ ifeq ($(UNAME),Darwin) ...@@ -101,8 +101,8 @@ ifeq ($(UNAME),Darwin)
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target) FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target)
SOURCES += $(SOURCES_iphoneos) SOURCES += $(SOURCES_iphoneos)
endif endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# if the 'pd' binary exists, check the linking against it to aid with stripping # if the 'pd' binary exists, check the linking against it to aid with stripping
LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd) LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
LIBS += -lc LIBS += -lc
......
...@@ -101,8 +101,8 @@ ifeq ($(UNAME),Darwin) ...@@ -101,8 +101,8 @@ ifeq ($(UNAME),Darwin)
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target) FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target)
SOURCES += $(SOURCES_iphoneos) SOURCES += $(SOURCES_iphoneos)
endif endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# if the 'pd' binary exists, check the linking against it to aid with stripping # if the 'pd' binary exists, check the linking against it to aid with stripping
LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd) LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
LIBS += -lc LIBS += -lc
......
...@@ -32,9 +32,15 @@ ...@@ -32,9 +32,15 @@
# 4. Run 'make debclean' to get rid of any files that were created in steps 2 # 4. Run 'make debclean' to get rid of any files that were created in steps 2
# and 3. # and 3.
# Determine the version number of this build. We get this from m_pd.h.
PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION ../pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')
# Determine the build version which needs git to be computed, so we can't do
# it in a stand-alone build from a tarball
PD_BUILD_VERSION := $(shell git log -1 --format=%cd --date=short | sed -e 's/-//g')-rev.$(shell git rev-parse --short HEAD)
# The Debian version gets derived from the date and serial number of the last # The Debian version gets derived from the date and serial number of the last
# commit. You can print it with 'make debversion'. # commit. You can print it with 'make debversion'.
debversion = $(shell 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. # Debian revision number of the package.
debrevision = 1 debrevision = 1
# Source tarball and folder. # Source tarball and folder.
...@@ -44,7 +50,7 @@ debdist = purr-data-$(debversion) ...@@ -44,7 +50,7 @@ debdist = purr-data-$(debversion)
# nw.js sdk # nw.js sdk
# NOTE: arm packages need some special-casing, since they are released # NOTE: arm packages need some special-casing, since they are released
# separately, and the version numbers do not always match up. # separately, and the version numbers do not always match up.
nwjsver = 0.28.1 nwjsver = 0.55.0
nwjspkg = nwjs-sdk-v$(nwjsver)-linux nwjspkg = nwjs-sdk-v$(nwjsver)-linux
nwjsver_arm = 0.27.6 nwjsver_arm = 0.27.6
nwjspkg_arm = nwjs-sdk-v$(nwjsver_arm)-linux nwjspkg_arm = nwjs-sdk-v$(nwjsver_arm)-linux
...@@ -54,7 +60,7 @@ nwjs = $(nwjspkg)-ia32.tar.gz $(nwjspkg)-x64.tar.gz $(nwjspkg_arm)-arm.tar.gz $( ...@@ -54,7 +60,7 @@ nwjs = $(nwjspkg)-ia32.tar.gz $(nwjspkg)-x64.tar.gz $(nwjspkg_arm)-arm.tar.gz $(
# Submodules (Gem, etc.). You can list them with 'make submodules'. # Submodules (Gem, etc.). You can list them with 'make submodules'.
#submodules = Gem externals/miXed $(addprefix l2ork_addons/, cwiid fftease3.0-32bit lyonpotpourri rtcmix-in-pd) #submodules = Gem externals/miXed $(addprefix l2ork_addons/, cwiid fftease3.0-32bit lyonpotpourri rtcmix-in-pd)
submodules = $(sort $(shell git -C .. config --file .gitmodules --get-regexp path | awk '{ print $$2 }')) submodules = $(sort $(shell git -C .. config --file .gitmodules --get-regexp path | awk '{ print $$2 }') externals/pd-lua/lua)
# This is used for automatically generated debian/changelog entries (cf. 'make # This is used for automatically generated debian/changelog entries (cf. 'make
# debchange'). Adjust as needed. # debchange'). Adjust as needed.
...@@ -97,14 +103,10 @@ deb-us: ...@@ -97,14 +103,10 @@ deb-us:
debsrc-us: debsrc-us:
$(MAKE) deb DEBUILD_FLAGS="-S -d -us -uc" $(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): $(debsrc):
rm -rf $(debdist) rm -rf $(debdist)
# Make sure that the submodules are initialized. # Make sure that the submodules are initialized.
git -C .. submodule update --init git -C .. submodule update --init --recursive
# Grab the main source. # Grab the main source.
git -C .. archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz - git -C .. archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules. # Grab the submodules.
...@@ -112,6 +114,13 @@ $(debsrc): ...@@ -112,6 +114,13 @@ $(debsrc):
# Pre-generate and put s_version.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). # 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 sed 's|^\(#define PD_BUILD_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' ../pd/src/s_version.h.in > $(debdist)/pd/src/s_version.h
# Pre-generate the markdown and html docs so that they will be included in the
# source. This means that we don't need any special tools as a build
# dependency, which makes live a lot easier.
make -C ../packages/gendoc version="$(PD_L2ORK_VERSION)" build_version="$(PD_BUILD_VERSION)"
mv ../packages/gendoc/*-Linux* $(debdist)/packages/gendoc
make -C ../packages/gendoc clean
ls -l $(debdist)/packages/gendoc/*.html
# Create the source tarball. # Create the source tarball.
tar cfz $(debsrc) $(debdist) tar cfz $(debsrc) $(debdist)
rm -rf $(debdist) rm -rf $(debdist)
......
...@@ -2,7 +2,7 @@ Source: purr-data ...@@ -2,7 +2,7 @@ Source: purr-data
Section: sound Section: sound
Priority: extra Priority: extra
Maintainer: Albert Graef <aggraef@gmail.com> Maintainer: Albert Graef <aggraef@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, libgtk2.0-dev, libgtk-3-dev, python2-dev | python-dev, dh-python, 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-dev | libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgsm1-dev, libjpeg-dev, liblua5.3-dev | liblua5.2-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libspeex-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 Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, libgtk2.0-dev, libgtk-3-dev, dh-python, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libgl1-mesa-dev | libgl-dev, libglew1.6-dev | libglew-dev, libgsl-dev | libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-dev | libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libspeex-dev, libstk-dev | libstk0-dev, libtiff5-dev, libv4l-dev, libdv4-dev, libiec61883-dev, libxv-dev, libxxf86vm-dev, libvorbis-dev, zlib1g-dev (>= 1:1.1.3), rsync, libgconf2-dev, libnss3-dev, libxtst-dev, libxss-dev, libtirpc-dev
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Homepage: https://git.purrdata.net/jwilkes/purr-data Homepage: https://git.purrdata.net/jwilkes/purr-data
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# Uncomment this to turn on verbose mode. # Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1 #export DH_VERBOSE=1
nwjsver = 0.28.1 nwjsver = 0.55.0
nwjspkg = nwjs-sdk-v$(nwjsver)-linux nwjspkg = nwjs-sdk-v$(nwjsver)-linux
nwjsdir = nwjs-sdk-v$(nwjsver)-linux nwjsdir = nwjs-sdk-v$(nwjsver)-linux
...@@ -44,6 +44,9 @@ override_dh_auto_build: ...@@ -44,6 +44,9 @@ override_dh_auto_build:
# Copy the nw.js sources to where purr-data wants them. # Copy the nw.js sources to where purr-data wants them.
@echo "DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)" @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 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) cd l2ork_addons && (export V=0 inst_dir=$(prefix); ./tar_em_up.sh -Bn)
make check prefix=$(prefix) make check prefix=$(prefix)
...@@ -70,19 +73,6 @@ endif ...@@ -70,19 +73,6 @@ endif
sed -e 's/pd-l2ork/purr-data/g' < scripts/bash_completion/pd-l2ork > debian/purr-data/etc/bash_completion.d/purr-data 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. # 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 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 # NOTE: Older systems use dh_pysupport instead of dh_python2. See
# http://deb.li/dhs2p. # http://deb.li/dhs2p.
......
...@@ -54,14 +54,18 @@ LIBS = -lm ...@@ -54,14 +54,18 @@ LIBS = -lm
ifeq ($(OS_NAME),darwin) ifeq ($(OS_NAME),darwin)
# 10.4 Tiger # 10.4 Tiger
FAT_FLAGS = -arch ppc -arch ppc64 -arch i386 # FAT_FLAGS = -arch ppc -arch ppc64 -arch i386
# 10.5 Leopard # 10.5 Leopard
# FAT_FLAGS = -arch ppc -arch ppc7400 -arch ppc64 -arch i386 -arch x86_64 # 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 # Check whether we have Homebrew or MacPorts, prefer the former.
LDFLAGS += -bundle -bundle_loader $(pd_src)/bin/pd-l2ork -undefined dynamic_lookup \ # Homebrew links software into $HOMEBREW_PREFIX. If this isn't defined, we
-L/sw/lib -weak_framework Carbon # 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 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 STRIP = strip -x
endif endif
ifeq ($(OS_NAME),linux) ifeq ($(OS_NAME),linux)
...@@ -137,9 +141,11 @@ CXXFLAGS = $(CFLAGS) ...@@ -137,9 +141,11 @@ CXXFLAGS = $(CFLAGS)
ifeq ($(LIGHT),yes) ifeq ($(LIGHT),yes)
# minimal set of extensions for the "light" build # minimal set of extensions for the "light" build
lib_targets = loaders-libdir pddp lib_targets = loaders-libdir pddp
# add specified externals to the light build
lib_targets += $(addons)
INCREMENTAL = yes INCREMENTAL = yes
else else
lib_targets = adaptive arraysize autotune bassemu bendinfix 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 endif
# NEW (IN-PROGRESS): flext # NEW (IN-PROGRESS): flext
...@@ -153,9 +159,10 @@ ifeq ($(OS_NAME),windows) ...@@ -153,9 +159,10 @@ ifeq ($(OS_NAME),windows)
else else
ifeq ($(OS_NAME),darwin) ifeq ($(OS_NAME),darwin)
# on Mac OS X 10.6/Snow Leopard don't build hid since it needs Carbon # on Mac OS X 10.6/Snow Leopard don't build hid since it needs Carbon
lib_targets += pdp iem16 apple ifeq ($(INCREMENTAL),yes)
ifneq ($(shell uname -r | sed 's|10\.[0-9][0-9]*\.[0-9][0-9]*|10|'),10) lib_targets += pdp iem16 apple
lib_targets += else
lib_targets += gem pdp iem16 apple
endif endif
else ifneq ($(LIGHT),yes) else ifneq ($(LIGHT),yes)
# GNU/Linux, BSD, IRIX, etc. (we use exported variable INCREMENTAL to # GNU/Linux, BSD, IRIX, etc. (we use exported variable INCREMENTAL to
...@@ -328,6 +335,7 @@ autotune: ...@@ -328,6 +335,7 @@ autotune:
autotune_install: autotune_install:
make -C $(externals_src)/autotune DESTDIR="$(DESTDIR)" \ make -C $(externals_src)/autotune DESTDIR="$(DESTDIR)" \
objectsdir="$(objectsdir)" install objectsdir="$(objectsdir)" install
install -d $(DESTDIR)$(objectsdir)/images
install -p $(externals_src)/autotune/autotune_scale_warp.png \ install -p $(externals_src)/autotune/autotune_scale_warp.png \
$(DESTDIR)/$(objectsdir)/images $(DESTDIR)/$(objectsdir)/images
...@@ -389,7 +397,7 @@ boids_clean: ...@@ -389,7 +397,7 @@ boids_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# BSAYLOR # BSAYLOR
bsaylor: bsaylor:
make -C $(externals_src)/bsaylor PD_PATH=$(pd_src) CFLAGS="$(CFLAGS) -fno-strict-aliasing" make -C $(externals_src)/bsaylor PD_PATH=$(pd_src) CFLAGS="$(CFLAGS) -fno-strict-aliasing" LDFLAGS="$(LDFLAGS)"
bsaylor_install: bsaylor_install:
make -C $(externals_src)/bsaylor \ make -C $(externals_src)/bsaylor \
...@@ -481,12 +489,6 @@ cyclone_clean: ...@@ -481,12 +489,6 @@ cyclone_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# DISIS # DISIS
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)" make -C $(externals_src)/disis PD_PATH=$(pd_src) pdbinpath=$(pd_src)/src CFLAGS="$(CFLAGS_ADD)"
disis_install: disis_install:
...@@ -650,7 +652,7 @@ flib_clean: ...@@ -650,7 +652,7 @@ flib_clean:
fluid: fluid:
make -C $(externals_src)/fluid~ PD_PATH=$(pd_src) \ 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: fluid_install:
make -C $(externals_src)/fluid~ DESTDIR="$(DESTDIR)" \ make -C $(externals_src)/fluid~ DESTDIR="$(DESTDIR)" \
...@@ -677,17 +679,24 @@ GEM_NAME = Gem ...@@ -677,17 +679,24 @@ GEM_NAME = Gem
$(gem_src)/configure: $(gem_src)/configure:
cd $(gem_src) && ./autogen.sh 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 $(gem_src)/Gem.dll: $(gem_src)/configure
cd $(gem_src) && ./configure \ cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \ CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
--host=i686-w64-mingw32 \
--without-ALL \ --without-ALL \
--with-jpeg \ --with-jpeg \
--with-jpeg-cflags="-I/mingw32/include" \ --with-jpeg-cflags="-I$(msys_prefix)/include" \
--with-jpeg-libs="-L/mingw32/lib -ljpeg" \ --with-jpeg-libs="-L$(msys_prefix)/lib -ljpeg" \
--with-ftgl \ --with-ftgl \
--with-ftgl-cflags="-I/mingw32/include -I/mingw32/include/freetype2" \ --with-ftgl-cflags="-I$(msys_prefix)/include -I$(msys_prefix)/include/freetype2" \
--with-ftgl-libs="-L/mingw32/lib -lftgl" \ --with-ftgl-libs="-L$(msys_prefix)/lib -lftgl" \
--with-vfw32 \ --with-vfw32 \
--prefix=$(prefix) \ --prefix=$(prefix) \
--libdir=$(objectsdir) \ --libdir=$(objectsdir) \
...@@ -699,22 +708,55 @@ $(gem_src)/Gem.pd_linux: $(gem_src)/configure ...@@ -699,22 +708,55 @@ $(gem_src)/Gem.pd_linux: $(gem_src)/configure
cd $(gem_src) && ./configure \ cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \ CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
--prefix=$(prefix) \ --prefix=$(prefix) \
--with-video=plugins \
--with-film=plugins \
--with-pd=$(pd_src) --with-pd=$(pd_src)
$(MAKE) $(GEM_MAKEFLAGS) -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 $(gem_src)/Gem.pd_darwin: $(gem_src)/configure
cd $(gem_src) && ./configure \ cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \ CXXFLAGS="-DHAVE_S_STUFF_H $(CFLAGS_ADD)" \
PKG_FTGL_CFLAGS="-I/sw/include -I/sw/include/freetype2 -I/sw/include/FTGL" \
--prefix=$(prefix) \ --prefix=$(prefix) \
--libdir=$(objectsdir) \ --libdir=$(objectsdir) \
--without-ALL \ --without-ALL \
--with-ftgl --with-ftgl-libs=/sw/lib \ --without-QuickTime-framework --without-Carbon-framework \
--with-artoolkit-includes=/sw/include --with-artoolkit-libs=/sw/lib \ --with-ftgl --with-ftgl-LIBS="-L$(usrlocal)/lib -lftgl" \
--with-video=plugins \ --with-tiff --with-tiff-LIBS="-L$(usrlocal)/lib -ltiff" \
--with-film=plugins \ --with-jpeg --with-jpeg-LIBS="-L$(usrlocal)/lib -ljpeg" \
$(gem_quicktime) $(gem_magick) \
$(gem_window) \
--without-ndi --without-DeckLink \
--with-pd=$(pd_src) --with-pd=$(pd_src)
$(MAKE) $(GEM_MAKEFLAGS) -C $(gem_src) $(MAKE) $(GEM_MAKEFLAGS) -C $(gem_src)
...@@ -1440,13 +1482,23 @@ pddp_clean: ...@@ -1440,13 +1482,23 @@ pddp_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# PDLUA # FLITE
flite:
make -C $(externals_src)/pd-flite PDINCLUDEDIR="$(pd_src)/src" PDBINDIR="$(pd_src)/src"
LUA_CFLAGS = $(shell (pkg-config --cflags lua5.4 || pkg-config --cflags lua5.3 || pkg-config --cflags lua5.2 || pkg-config --cflags lua) 2> /dev/null) flite_install:
LUA_LIBS = $(shell (pkg-config --libs lua5.4 || pkg-config --libs lua5.3 || pkg-config --libs lua5.2 || pkg-config --libs lua) 2> /dev/null) make -C $(externals_src)/pd-flite DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
flite_clean:
make -C $(externals_src)/pd-flite clean
#------------------------------------------------------------------------------#
# PDLUA
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: pdlua_install:
make -C $(externals_src)/pd-lua DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install make -C $(externals_src)/pd-lua DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
...@@ -1458,7 +1510,7 @@ pdlua_clean: ...@@ -1458,7 +1510,7 @@ pdlua_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# PDOGG # PDOGG
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: pdogg_install:
make -C $(externals_src)/pdogg DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install make -C $(externals_src)/pdogg DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
...@@ -1481,7 +1533,7 @@ $(externals_src)/pdp/configure: $(externals_src)/pdp/configure.ac ...@@ -1481,7 +1533,7 @@ $(externals_src)/pdp/configure: $(externals_src)/pdp/configure.ac
cd $(externals_src)/pdp && autoconf cd $(externals_src)/pdp && autoconf
$(externals_src)/pdp/Makefile.config: $(externals_src)/pdp/configure $(externals_src)/pdp/Makefile.config.in $(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) $(PDP_OPTIONS)
$(externals_src)/pdp/pdp.$(EXTENSION): $(externals_src)/pdp/Makefile.config $(externals_src)/pdp/pdp.$(EXTENSION): $(externals_src)/pdp/Makefile.config
...@@ -1823,7 +1875,7 @@ toxy_clean: ...@@ -1823,7 +1875,7 @@ toxy_clean:
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# UNAUTHORIZED # UNAUTHORIZED
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 PD_PATH=$(pd_src) PD_INCLUDE=$(pd_src)/src
unauthorized_install: unauthorized_install:
...@@ -2327,7 +2379,7 @@ etags_Darwin: ...@@ -2327,7 +2379,7 @@ etags_Darwin:
etags -a $(externals_src)/hcs/hid/HID\ Utilities\ Source/*.[ch] etags -a $(externals_src)/hcs/hid/HID\ Utilities\ Source/*.[ch]
find /System/Library/Frameworks -type f -name \*.h -exec etags -a '{}' \; find /System/Library/Frameworks -type f -name \*.h -exec etags -a '{}' \;
find /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: etags_Linux:
......
...@@ -52,10 +52,11 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ...@@ -52,10 +52,11 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#define DONE 4 /* All open bundles have been closed, so can't write #define DONE 4 /* All open bundles have been closed, so can't write
anything else */ anything else */
#include <stdio.h>
#ifdef WIN32 #ifdef WIN32
#include <winsock2.h> #include <winsock2.h>
#include <io.h> #include <io.h>
#include <stdio.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <sys/types.h> #include <sys/types.h>
...@@ -68,7 +69,6 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ...@@ -68,7 +69,6 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#ifdef unix #ifdef unix
#include <netinet/in.h> #include <netinet/in.h>
#include <stdio.h>
#endif #endif
#include "OSC-client.h" #include "OSC-client.h"
......
...@@ -138,7 +138,7 @@ static int unixinitudp(int chan) ...@@ -138,7 +138,7 @@ static int unixinitudp(int chan)
if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
return sockfd; return sockfd;
bzero((char *)&serv_addr, sizeof(serv_addr)); memset((char *)&serv_addr, 0, sizeof(serv_addr));
serv_addr.sun_family = AF_UNIX; serv_addr.sun_family = AF_UNIX;
strcpy(serv_addr.sun_path, UNIXDG_PATH); strcpy(serv_addr.sun_path, UNIXDG_PATH);
sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan); sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan);
...@@ -160,7 +160,7 @@ static int initudp(int chan) ...@@ -160,7 +160,7 @@ static int initudp(int chan)
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return sockfd; return sockfd;
bzero((char *)&serv_addr, sizeof(serv_addr)); memset((char *)&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET; serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(chan); serv_addr.sin_port = htons(chan);
......
...@@ -92,7 +92,7 @@ static int initudp(int port) { ...@@ -92,7 +92,7 @@ static int initudp(int port) {
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return sockfd; return sockfd;
bzero((char *)&serv_addr, sizeof(serv_addr)); memset((char *)&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET; serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(port); serv_addr.sin_port = htons(port);
......
...@@ -133,7 +133,7 @@ void *OpenHTMSocket(char *host, int portnumber) ...@@ -133,7 +133,7 @@ void *OpenHTMSocket(char *host, int portnumber)
* server that we want to send to. * server that we want to send to.
*/ */
bzero((char *) &o->userv_addr, sizeof(o->userv_addr)); memset((char *) &o->userv_addr, 0, sizeof(o->userv_addr));
o->userv_addr.sun_family = AF_UNIX; o->userv_addr.sun_family = AF_UNIX;
strcpy(o->userv_addr.sun_path, UNIXDG_PATH); strcpy(o->userv_addr.sun_path, UNIXDG_PATH);
sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber); sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber);
...@@ -152,7 +152,7 @@ void *OpenHTMSocket(char *host, int portnumber) ...@@ -152,7 +152,7 @@ void *OpenHTMSocket(char *host, int portnumber)
* pathname, based on our process id. * pathname, based on our process id.
*/ */
bzero((char *) &ucl_addr, sizeof(ucl_addr)); /* zero out */ memset((char *) &ucl_addr, 0, sizeof(ucl_addr)); /* zero out */
ucl_addr.sun_family = AF_UNIX; ucl_addr.sun_family = AF_UNIX;
strcpy(ucl_addr.sun_path, UNIXDG_TMP); strcpy(ucl_addr.sun_path, UNIXDG_TMP);
...@@ -183,7 +183,7 @@ void *OpenHTMSocket(char *host, int portnumber) ...@@ -183,7 +183,7 @@ void *OpenHTMSocket(char *host, int portnumber)
#ifdef WIN32 #ifdef WIN32
ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr)); ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr));
#else #else
bzero((char *)&o->serv_addr, sizeof(o->serv_addr)); memset((char *)&o->serv_addr, 0, sizeof(o->serv_addr));
#endif #endif
o->serv_addr.sin_family = AF_INET; o->serv_addr.sin_family = AF_INET;
...@@ -243,7 +243,7 @@ void *OpenHTMSocket(char *host, int portnumber) ...@@ -243,7 +243,7 @@ void *OpenHTMSocket(char *host, int portnumber)
o->serv_addr.sin_port = htons(portnumber); o->serv_addr.sin_port = htons(portnumber);
o->addr = &(o->serv_addr); o->addr = &(o->serv_addr);
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) { if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
bzero((char *)&cl_addr, sizeof(cl_addr)); memset((char *)&cl_addr, 0, sizeof(cl_addr));
cl_addr.sin_family = AF_INET; cl_addr.sin_family = AF_INET;
cl_addr.sin_addr.s_addr = htonl(INADDR_ANY); cl_addr.sin_addr.s_addr = htonl(INADDR_ANY);
cl_addr.sin_port = htons(0); cl_addr.sin_port = htons(0);
......
...@@ -313,7 +313,7 @@ static void *dumpOSC_new(t_symbol *compatflag, ...@@ -313,7 +313,7 @@ static void *dumpOSC_new(t_symbol *compatflag,
int t = 1; int t = 1;
mreq.imr_multiaddr.s_addr = inet_addr(castgroup->s_name); mreq.imr_multiaddr.s_addr = inet_addr(castgroup->s_name);
mreq.imr_interface.s_addr = htonl(INADDR_ANY); mreq.imr_interface.s_addr = htonl(INADDR_ANY);
if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&t,sizeof(t)) < 0) { if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(char*)&t,sizeof(t)) < 0) {
sys_sockerror("setsockopt"); sys_sockerror("setsockopt");
} }
if (setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mreq,sizeof(mreq)) < 0) { if (setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mreq,sizeof(mreq)) < 0) {
...@@ -400,7 +400,7 @@ void dumpOSC_setup(void) ...@@ -400,7 +400,7 @@ void dumpOSC_setup(void)
if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
return sockfd; return sockfd;
bzero((char *)&serv_addr, sizeof(serv_addr)); memset((char *)&serv_addr, 0, sizeof(serv_addr));
serv_addr.sun_family = AF_UNIX; serv_addr.sun_family = AF_UNIX;
strcpy(serv_addr.sun_path, UNIXDG_PATH); strcpy(serv_addr.sun_path, UNIXDG_PATH);
sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan); sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan);
...@@ -448,7 +448,7 @@ static int initudp(int chan) ...@@ -448,7 +448,7 @@ static int initudp(int chan)
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return sockfd; return sockfd;
bzero((char *)&serv_addr, sizeof(serv_addr)); memset((char *)&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET; serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(chan); serv_addr.sin_port = htons(chan);
......
...@@ -154,7 +154,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL) ...@@ -154,7 +154,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
* server that we want to send to. * server that we want to send to.
*/ */
bzero((char *) &o->userv_addr, sizeof(o->userv_addr)); memset((char *) &o->userv_addr, 0, sizeof(o->userv_addr));
o->userv_addr.sun_family = AF_UNIX; o->userv_addr.sun_family = AF_UNIX;
strcpy(o->userv_addr.sun_path, UNIXDG_PATH); strcpy(o->userv_addr.sun_path, UNIXDG_PATH);
sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber); sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber);
...@@ -173,7 +173,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL) ...@@ -173,7 +173,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
* pathname, based on our process id. * pathname, based on our process id.
*/ */
bzero((char *) &ucl_addr, sizeof(ucl_addr)); /* zero out */ memset((char *) &ucl_addr, 0, sizeof(ucl_addr)); /* zero out */
ucl_addr.sun_family = AF_UNIX; ucl_addr.sun_family = AF_UNIX;
strcpy(ucl_addr.sun_path, UNIXDG_TMP); strcpy(ucl_addr.sun_path, UNIXDG_TMP);
...@@ -204,7 +204,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL) ...@@ -204,7 +204,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
#ifdef WIN32 #ifdef WIN32
ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr)); ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr));
#else #else
bzero((char *)&o->serv_addr, sizeof(o->serv_addr)); memset((char *)&o->serv_addr, 0, sizeof(o->serv_addr));
#endif #endif
o->serv_addr.sin_family = AF_INET; o->serv_addr.sin_family = AF_INET;
...@@ -290,7 +290,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL) ...@@ -290,7 +290,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
o->serv_addr.sin_port = htons(portnumber); o->serv_addr.sin_port = htons(portnumber);
o->addr = &(o->serv_addr); o->addr = &(o->serv_addr);
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) { if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
bzero((char *)&cl_addr, sizeof(cl_addr)); memset((char *)&cl_addr, 0, sizeof(cl_addr));
cl_addr.sin_family = AF_INET; cl_addr.sin_family = AF_INET;
cl_addr.sin_addr.s_addr = htonl(INADDR_ANY); cl_addr.sin_addr.s_addr = htonl(INADDR_ANY);
cl_addr.sin_port = htons(0); cl_addr.sin_port = htons(0);
......