aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-21 04:39:02 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-21 04:39:02 +0000
commitc67180156bb011ebe9a0524757052a28a6c62692 (patch)
treea0c3e3660a926a44c1254516338ac83cff0d05b2
parent3382e067199abb3bb8fcb2044711910640a459c1 (diff)
Lots of changes, got the first complete(-ish) build with the new extended
build system. I left as much of the old functionality in place as possible, definitely were it was being used. But there are some changes that break backwards compatibility, thought they should be noticed by few, and be easy to fix going forward. Some highlights: - centralized patch system (packages/patches with targets patch_pd and unpatch_pd) - easily redirected builds, using INSTALL_PREFIX and all of the *_DEST variables. This makes building packages like Pd.app, .deb, .rpm, etc. much easier. - libdir format: basically a libdir is a directory that has both the objects and the help files together in one folder. It can be added using -lib or the StartUp preferences, or you can access them via geiger namespaces, i.e. [mylibrary/myobject]. - special characters allow in setup function/file names for objects. This makes objects like [||~] possible without having to be in a library. Now they can be either .pd files or individual .pd_darwin files (thanks IOhannes for the patch). svn path=/trunk/; revision=3993
-rw-r--r--doc/Makefile146
-rw-r--r--doc/Makefile.buildlayout191
-rw-r--r--doc/TODO4
-rw-r--r--packages/Makefile322
-rw-r--r--packages/Makefile.buildlayout7
-rw-r--r--packages/README15
-rw-r--r--packages/TODO43
-rw-r--r--packages/darwin_app/Makefile593
-rw-r--r--packages/darwin_app/TODO54
-rw-r--r--packages/darwin_app/patches/MACOSX-to-__APPLE__.patch357
-rw-r--r--packages/darwin_app/patches/special_chars_hack.patch58
-rw-r--r--packages/patches/build_vars_4_makefile.in.patch98
-rw-r--r--packages/patches/darwin/darwin_display_tweaks.patch (renamed from packages/darwin_app/patches/display_tweaks.patch)0
-rw-r--r--packages/patches/darwin/darwin_jack_weak_linking.patch (renamed from packages/darwin_app/patches/weak_linking.patch)0
-rw-r--r--packages/patches/darwin/darwin_linking_fixes.patch (renamed from packages/darwin_app/patches/darwin_linking_fixes.patch)0
-rw-r--r--packages/patches/extended-help-menu.patch (renamed from packages/darwin_app/patches/extended-help-menu.patch)2
-rw-r--r--packages/patches/libdir-0.38-4.patch14
-rw-r--r--packages/patches/loaderHEX-0.39-1.patch208
-rw-r--r--packages/patches/win/NT2_MSC_VER.patch59
-rw-r--r--packages/win32_inno/TODO2
20 files changed, 1250 insertions, 923 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 1a4f9811..806ed52d 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,42 +1,104 @@
-# Created by Hans-Christoph Steiner <hans@eds.org> to generate MacOS X packages
-# This Makefile does not generate a PDDP pkg, PDDP has its own Makefile
-
-current: darwin_pkg
-
-PACKAGE_VERSION = $(shell date +20%y.%m.%d)
-PACKAGE_PREFIX = pd-doc
-PACKAGE_NAME = $(PACKAGE_PREFIX)-$(PACKAGE_VERSION)
-
-darwin_pkg_license:
- # generate HTML version of License
-# echo "<HTML><BODY><FONT SIZE="-1">" > License.html
-# cat ../../creb/COPYING | sed -e 's/^$$/\<P\>/g' >> License.html
-# echo "</FONT></BODY></HTML>" >> License.html
-
-darwin_pkg_welcome:
-# generate Welcome.html from ../README.txt
-
-darwin_pkg_clean:
- -sudo rm -Rf installroot/ $(PACKAGE_PREFIX)*.pkg/
- -rm -f $(PACKAGE_PREFIX)-*.info 1 License.html Welcome.???*
-
-# install into MSP's default: /usr/local/lib
-
-darwin_pkg: darwin_pkg_clean darwin_pkg_license darwin_pkg_welcome
-# set up installroot dir
- -chmod a-x */*/*.pd */*/*/*.pd */*/*/*/*.pd
- test -d installroot/pd/doc/7.stuff || mkdir -p installroot/pd/doc/7.stuff
- cp -R tutorials installroot/pd/doc/
- cp -R additional/pd-msg installroot/pd/doc/7.stuff/
- cp -f pd-doc.info $(PACKAGE_NAME).info
-# delete cruft
- -find installroot -name .DS_Store -delete
- -sudo rm -Rf installroot/*/*/*/CVS installroot/*/*/*/*/CVS installroot/*/*/*/*/*/CVS
- -rm -f 1
-# set proper permissions
- sudo chown -R root:staff installroot
- package installroot $(PACKAGE_NAME).info -d . -ignoreDSStore
-# install pkg docs
-# install -m 644 License.html $(PACKAGE_NAME).pkg/Contents/Resources
- sudo chown -R root:staff $(PACKAGE_NAME).pkg/Contents/Resources
-
+#==============================================================================#
+#
+# Centralized build system for "doc".
+#
+# see for instructions: http://puredata.org/docs/developer/build
+# <hans@at.or.at>
+#
+#==============================================================================#
+
+CWD := $(shell pwd)
+
+# these are designed to be overridden by the packages/Makefile
+SRC_ROOT_DIR = $(CWD)/..
+INSTALL_PREFIX = build
+BUILDLAYOUT_DIR = $(CWD)
+
+# default target
+all:
+ @echo "this currently does nothing"
+
+include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
+
+#==============================================================================#
+#
+# OVERARCHING BUILD TARGETS
+#
+#==============================================================================#
+
+# clean up after everything is installed
+final_setup:
+ chmod -R ugo-w $(DOCS_DEST)
+
+install: pd-msg_install pddp_install tutorials_install
+ @echo " "
+ @echo "doc install succeeded!"
+
+#==============================================================================#
+#
+# PROJECT-SPECIFIC TARGETS
+#
+#==============================================================================#
+
+#------------------------------------------------------------------------------#
+# PD-MSG
+PD-MSG_NAME = pd-msg
+pd-msg_install: $(MANUALS_DEST)
+ install -d $(MANUALS_DEST)/$(PD-MSG_NAME)
+ install -p $(DOC_SRC)/additional/pd-msg/*.txt \
+ $(MANUALS_DEST)/$(PD-MSG_NAME)
+ for dir in $(shell cd $(DOC_SRC)/additional/pd-msg && ls -d [1-5].*); do \
+ echo "Including $$dir in $(PD-MSG_NAME)"; \
+ install -d $(MANUALS_DEST)/$(PD-MSG_NAME)/$$dir; \
+ install -p $(DOC_SRC)/additional/pd-msg/$$dir/*.* \
+ $(MANUALS_DEST)/$(PD-MSG_NAME)/$$dir; \
+ done
+
+
+#------------------------------------------------------------------------------#
+# PDDP
+pddp_install: $(HELP_DEST)
+ install -p $(DOC_SRC)/pddp/*.pd $(HELP_DEST)
+# this file is used in key-help.pd
+ install -p $(DOC_SRC)/pddp/keyboard_fun.txt $(HELP_DEST)
+
+
+#------------------------------------------------------------------------------#
+# TUTORIALS
+tutorials_install: $(MANUALS_DEST)
+# pddrums
+ install -d $(MANUALS_DEST)/PdDrums
+ install -p $(DOC_SRC)/tutorials/footils/pddrums/*.* $(MANUALS_DEST)/PdDrums
+# playnow
+ install -d $(MANUALS_DEST)/PlayNow
+ install -p $(DOC_SRC)/tutorials/playnow/*.pd $(MANUALS_DEST)/PlayNow
+ install -p $(DOC_SRC)/tutorials/playnow/*.mid $(MANUALS_DEST)/PlayNow
+
+
+#==============================================================================#
+#
+# DEVELOPER'S TARGETS
+#
+#==============================================================================#
+
+# make the symlinks necessary to simulate the installed environment
+devsymlinks:
+ ln -s $(PD_SRC)/doc/2.control.examples $(DOC_SRC)/2.control.examples
+ ln -s $(PD_SRC)/doc/3.audio.examples $(DOC_SRC)/3.audio.examples
+# pd <= 0.38-4 has 4.fft.examples
+ ln -s $(PD_SRC)/doc/4.fft.examples $(DOC_SRC)/4.fft.examples
+# pd > 0.38-4 has 4.data.structures
+ ln -s $(PD_SRC)/doc/4.data.structures $(DOC_SRC)/4.data.structures
+ ln -s $(PD_SRC)/doc/7.stuff $(DOC_SRC)/7.stuff
+ ln -s $(PD_SRC)/doc/sound $(DOC_SRC)/sound
+
+#==============================================================================#
+#
+# CLEAN TARGETS
+#
+#==============================================================================#
+
+# the destination-specific clean targets are in Makefile.buildlayout
+clean: install_clean
+
+distclean: clean cruft_clean
diff --git a/doc/Makefile.buildlayout b/doc/Makefile.buildlayout
new file mode 100644
index 00000000..d5b9e9f3
--- /dev/null
+++ b/doc/Makefile.buildlayout
@@ -0,0 +1,191 @@
+#==============================================================================#
+#
+# Centralized cross-platform build system Makefile.buildsystem
+#
+# this file contains all the common locations and targets
+# <hans@at.or.at>
+#
+#==============================================================================#
+# This file should be exactly the same in each section of the CVS. A copy is
+# kept in each section of the CVS so that each section will be self-contained.
+# To use it, you need to include it in your Makefile (i.e. "include
+# Makefile.buildlayout") and then define $(INSTALL_PREFIX) and $(SRC_ROOT_DIR).
+#
+# $(SRC_ROOT_DIR) is the base directory of src tree, equivalent to the root
+# level of the pure-data CVS.
+#
+# $(INSTALL_PREFIX) is the base directory to where all of the resulting files
+# will be copied.
+#
+# This file is currently located in these places:
+# abstractions
+# externals/build
+# packages
+#
+# it will be going here too:
+# doc
+# extensions
+# gem
+# pd
+#
+# <hans@at.or.at>
+
+#==============================================================================#
+#
+## PLATFORM-SPECIFIC SETTINGS
+#
+#==============================================================================#
+# which OS to compile for
+UNAME := $(shell uname -s)
+ifeq ($(UNAME),Linux)
+ OS_NAME = linux
+ EXTENSION = pd_linux
+else
+ ifeq ($(UNAME),Darwin)
+ OS_NAME = darwin
+ EXTENSION = pd_darwin
+ else
+ ifeq (MINGW,$(findstring MINGW,$(UNAME)))
+ OS_NAME = win
+ EXTENSION = dll
+ else
+ OS_NAME = unknown
+ EXTENSION = so
+ $(warning WARNING: unknown environment "$(UNAME)".)
+ endif
+ endif
+endif
+
+
+#==============================================================================#
+#
+# DIRECTORY STRUCTURE
+#
+#==============================================================================#
+
+# sources
+ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
+DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTERNALS_SRC = $(SRC_ROOT_DIR)/externals
+FLEXT_SRC = $(SRC_ROOT_DIR)/externals/grill/flext
+GEM_SRC = $(SRC_ROOT_DIR)/Gem
+GEMLIBS_SRC = $(SRC_ROOT_DIR)/GemLibs
+PACKAGES_SRC = $(SRC_ROOT_DIR)/packages
+PD_SRC = $(SRC_ROOT_DIR)/pd
+SCRIPTS_SRC = $(SRC_ROOT_DIR)/scripts
+
+
+# destinations
+APPLICATIONS_DEST = $(DOCS_DEST)/examples
+BIN_DEST = $(INSTALL_PREFIX)/bin
+DOCS_DEST = $(INSTALL_PREFIX)/doc
+INCLUDE_DEST = $(INSTALL_PREFIX)/include
+LIB_DEST = $(INSTALL_PREFIX)/lib
+MAN_DEST = $(INSTALL_PREFIX)/man
+OBJECTS_DEST = $(INSTALL_PREFIX)/extra
+HELP_DEST = $(DOCS_DEST)/5.reference
+MANUALS_DEST = $(DOCS_DEST)/manuals
+
+
+#==============================================================================#
+#
+# DIRECTORY STRUCTURE TARGETS
+#
+#==============================================================================#
+
+# first make sure that the directory structure is setup
+$(INSTALL_PREFIX):
+ install -d $(INSTALL_PREFIX)
+
+$(APPLICATIONS_DEST): $(INSTALL_PREFIX)
+ install -d $(APPLICATIONS_DEST)
+
+$(DOCS_DEST): $(INSTALL_PREFIX)
+ install -d $(DOCS_DEST)
+
+$(HELP_DEST): $(INSTALL_PREFIX)
+ install -d $(HELP_DEST)
+
+$(MANUALS_DEST): $(INSTALL_PREFIX)
+ install -d $(MANUALS_DEST)
+
+$(OBJECTS_DEST): $(INSTALL_PREFIX)
+ install -d $(OBJECTS_DEST)
+
+
+#==============================================================================#
+#
+# CLEAN TARGETS
+#
+#==============================================================================#
+
+applications_clean:
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*.*
+ -rmdir $(APPLICATIONS_DEST)/*/*/*/*
+ -rmdir $(APPLICATIONS_DEST)/*/*/*
+ -rmdir $(APPLICATIONS_DEST)/*/*
+ -rmdir $(APPLICATIONS_DEST)/*
+ -rmdir $(APPLICATIONS_DEST)
+
+
+help_clean:
+ -rm -f -- $(HELP_DEST)/*/*/*.*
+ -rm -f -- $(HELP_DEST)/*/*.*
+ -rm -f -- $(HELP_DEST)/*.*
+ -rmdir $(HELP_DEST)/*/*
+ -rmdir $(HELP_DEST)/*
+ -rmdir $(HELP_DEST)
+
+
+manuals_clean:
+ -rm -f -- $(MANUALS_DEST)/*/*/*.*
+ -rm -f -- $(MANUALS_DEST)/*/*.*
+ -rmdir $(MANUALS_DEST)/*/*
+ -rmdir $(MANUALS_DEST)/*
+ -rmdir $(MANUALS_DEST)
+
+
+objects_clean:
+ -rm $(OBJECTS_DEST)/*/*/*.pd
+ -rm $(OBJECTS_DEST)/*/*.pd
+ -rm $(OBJECTS_DEST)/*.pd
+ -rm $(OBJECTS_DEST)/*/*/*.$(EXTENSION)
+ -rm $(OBJECTS_DEST)/*/*.$(EXTENSION)
+ -rm $(OBJECTS_DEST)/*.$(EXTENSION)
+ -rmdir $(OBJECTS_DEST)/*/*
+ -rmdir $(OBJECTS_DEST)/*
+ -rmdir $(OBJECTS_DEST)
+
+
+install_clean: applications_clean help_clean manuals_clean objects_clean
+ -rmdir $(DOCS_DEST)
+ -rmdir $(INSTALL_PREFIX)
+ @echo " "
+ @echo "Build destination cleaned: $(INSTALL_PREFIX)"
+
+
+cruft_clean:
+# emacs litter
+ -rm -f -- */*/*/*/*.*~
+ -rm -f -- */*/*/*.*~
+ -rm -f -- */*/*.*~
+ -rm -f -- */*.*~
+ -rm -f -- *.*~
+ -rm -f -- Makefile~ Makefile.buildlayout~
+# sed replace litter
+ -rm -f -- */*/*/*/*.*.bak
+ -rm -f -- */*/*/*.*.bak
+ -rm -f -- */*/*.*.bak
+ -rm -f -- */*.*.bak
+ -rm -f -- *.*.bak
+# autoconf cache
+ -rm -rf -- */*/*/*/autom4te.cache
+ -rm -rf -- */*/*/autom4te.cache
+ -rm -rf -- */*/autom4te.cache
+ -rm -rf -- */autom4te.cache
+ -rm -rf -- autom4te.cache
+
+
diff --git a/doc/TODO b/doc/TODO
new file mode 100644
index 00000000..94a60cfc
--- /dev/null
+++ b/doc/TODO
@@ -0,0 +1,4 @@
+
+- create Makefile for Pd-extended build system
+
+- add pd-fileformat doc: http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html
diff --git a/packages/Makefile b/packages/Makefile
index 21d7cb96..72d94f68 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -2,7 +2,8 @@
#
# Centralized cross-platform build system
#
-# see README for instructions <hans@at.or.at>
+# see for instructions: http://puredata.org/docs/developer/build
+# <hans@at.or.at>
#
#==============================================================================#
@@ -14,11 +15,92 @@ BUILDLAYOUT_DIR = $(CWD)
# default target
-all: abstractions doc externals flext gem pd
+all: pd abstractions doc externals
+#all: pd abstractions doc externals flext gem
@echo "Complete build succeeded!"
include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
+#==============================================================================#
+#
+# GET VERSIONS FOR RELEVANT SOFTWARE
+#
+#==============================================================================#
+
+
+PD_MAJOR_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | \
+ sed 's/char pd_version\[\] = "Pd version \([0-9]\)\.[0-9]*[. TES]*[0-9]*[0-9extndRC.-]*\\n";/\1/')
+PD_MINOR_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | \
+ sed 's/char pd_version\[\] = "Pd version [0-9]\.\([0-9]*\)[. TES]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/')
+PD_BUGFIX_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | \
+ sed 's/char pd_version\[\] = "Pd version [0-9]\.[0-9]*[. TES]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/')
+PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION)-$(PD_BUGFIX_VERSION)
+
+
+# release version for this distro
+PACKAGE_VERSION = extended-RC3
+PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
+DMG_NAME = $(PACKAGE_NAME)
+
+
+CYCLONE_MAJOR_VERSION := $(shell grep CYCLONE_VERSION \
+ $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+CYCLONE_RELEASE := $(shell grep CYCLONE_RELEASE \
+ $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+CYCLONE_BUILD := $(shell grep CYCLONE_BUILD \
+ $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+CYCLONE_VERSION := $(CYCLONE_MAJOR_VERSION) $(CYCLONE_RELEASE) $(CYCLONE_BUILD)
+
+
+FLEXT_MAJOR_VERSION := $(shell grep FLEXTMAJOR \
+ $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2)
+FLEXT_MINOR_VERSION := $(shell grep FLEXTMINOR \
+ $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2)
+FLEXT_MICRO_VERSION := $(shell grep FLEXTMICRO \
+ $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2)
+FLEXT_VERSION := $(FLEXT_MAJOR_VERSION).$(FLEXT_MINOR_VERSION).$(FLEXT_MICRO_VERSION)
+
+
+GEM_VERSION := $(shell grep "GEM_VERSION" $(GEM_SRC)/src/Base/GemVersion.h | \
+ cut -d '"' -f 2)
+
+
+MAXLIB_VERSION := $(shell grep "define VERSION" \
+ $(EXTERNALS_SRC)/maxlib/maxlib.c | cut -d '"' -f 2)
+
+
+OSC_VERSION := $(shell grep "define VERSION" $(EXTERNALS_SRC)/OSCx/src/OSC.c | \
+ cut -d '"' -f 2)
+
+
+PDP_VERSION := $(shell grep PDP_VERSION= $(EXTERNALS_SRC)/pdp/configure | \
+ cut -d '=' -f 2)
+
+
+PMPD_VERSION := $(shell grep "define VERSION" \
+ $(EXTERNALS_SRC)/pmpd/src/pmpd.c | cut -d '"' -f 2)
+
+
+TOXY_MAJOR_VERSION := $(shell grep TOXY_VERSION \
+ $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+TOXY_RELEASE := $(shell grep TOXY_RELEASE \
+ $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+TOXY_BUILD := $(shell grep TOXY_BUILD \
+ $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | \
+ cut -d '"' -f 2)
+TOXY_VERSION := $(TOXY_MAJOR_VERSION) $(TOXY_RELEASE) $(TOXY_BUILD)
+
+
+ZEXY_VERSION := $(shell grep VERSION $(EXTERNALS_SRC)/zexy/src/zexy.h | \
+ grep -v _VERSION | cut -d ' ' -f 3 | cut -d '"' -f 2)
+
+
+
# these are sent to all of the various Makefiles so that they all copy their
# output to the same directory tree
DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
@@ -26,6 +108,7 @@ DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
INSTALL_PREFIX=$(INSTALL_PREFIX) \
UNAME=$(UNAME)
+
#==============================================================================#
#
# BUILD TARGETS
@@ -51,7 +134,13 @@ externals:
#------------------------------------------------------------------------------
# flext
flext:
-
+# nusmuk
+ cd $(EXTERNALS_SRC)/nusmuk/msd && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc
+ cd $(EXTERNALS_SRC)/nusmuk/msd2D && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc
+ cd $(EXTERNALS_SRC)/nusmuk/msd3D && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc
#------------------------------------------------------------------------------
# Gem
@@ -60,7 +149,44 @@ gem:
#------------------------------------------------------------------------------
# pd
+# pd's makefile has some of its own variables that need to be remapped
+# this relies on patches/build_vars_4_makefile.in.patch <hans@at.or.at>
+DESTDIR = ""
+ifeq ($(OS_NAME),darwin)
+ LIBPD_DEST = $(INSTALL_PREFIX)
+ LIBBIN_DEST = $(BIN_DEST)
+else
+ ifeq ($(OS_NAME),win)
+ LIBPD_DEST = $(INSTALL_PREFIX)
+ LIBBIN_DEST = $(BIN_DEST)
+ else
+ LIBPD_DEST = $(INSTDIR)/lib/pd
+ LIBBIN_DEST = $(LIB_DEST)/pd/bin
+ endif
+endif
+
+PD_DEST_PATHS = $(DEST_PATHS) DESTDIR=$(DESTDIR) \
+ LIBPD_DEST=$(LIBPD_DEST) \
+ LIBBIN_DEST=$(LIBBIN_DEST)
+
+PD_CONFIGURE_FLAGS =
+PD_EXTRA_FLAGS =
+
+# Pd sometimes needs a specific autoconf, which is labeled differently on different
+# machines
+#PD_AUTOCONF := ${shell ( test -x "`which autoconf-2.59`" && echo autoconf-2.59 ) || echo autoconf }
+PD_AUTOCONF = autoconf
+
+
pd:
+ echo "DESTDIR $(DESTDIR) LIBBIN_DEST $(LIBBIN_DEST)"
+ echo "DEST_PATHS $(DEST_PATHS)"
+ echo "PD_DEST_PATHS $(PD_DEST_PATHS)"
+ echo "PD_EXTRA_FLAGS $(PD_EXTRA_FLAGS)"
+ cd $(PD_SRC)/src/ && $(PD_AUTOCONF)
+ cd $(PD_SRC)/src && ./configure $(PD_CONFIGURE_FLAGS) && \
+ make $(PD_DEST_PATHS) $(PD_EXTRA_FLAGS)
+
#==============================================================================#
#
@@ -75,7 +201,8 @@ abstractions_install:
#------------------------------------------------------------------------------
# doc
-doc_install:
+doc_install:
+ cd $(DOC_SRC) && make $(DEST_PATHS) install
#------------------------------------------------------------------------------
@@ -87,6 +214,14 @@ externals_install:
#------------------------------------------------------------------------------
# flext_install
flext_install:
+# nusmuk
+ cd $(EXTERNALS_SRC)/nusmuk/msd && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc install
+ cd $(EXTERNALS_SRC)/nusmuk/msd2D && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc install
+ cd $(EXTERNALS_SRC)/nusmuk/msd3D && $(EXTERNALS_SRC)/grill/flext/build.sh \
+ pd gcc install
+#TODO: need to add nusmuk/editor
#------------------------------------------------------------------------------
@@ -96,17 +231,182 @@ gem_install:
#------------------------------------------------------------------------------
# pd
-pd_install:
+pd_install: pd
+ cd $(PD_SRC)/src && \
+ make $(PD_DEST_PATHS) $(PD_EXTRA_FLAGS) install
#------------------------------------------------------------------------------
# install
-install: abstractions_install doc_install externals_install flext_install
-install: gem_install pd_install
+install: pd_install abstractions_install doc_install externals_install
+#install: flext_install gem_install
@echo "Complete install succeeded!"
+
+
+#==============================================================================#
+#
+# GENERATE TEXT FILES FOR PACKAGE
+#
#==============================================================================#
+
+LICENSE_FILE = $(INSTALL_PREFIX)/License.html
+license:
+ # generate HTML version of License
+ touch $(LICENSE_FILE)
+ echo "<html><body>" >> "$(LICENSE_FILE)"
+ echo "<h3>(Parts of this package can be used under the Pd/BSD license)</h3>" >> "$(LICENSE_FILE)"
+ echo "<font size=\"-1\">" >> "$(LICENSE_FILE)"
+ cat "$(EXTERNALS_SRC)/creb/COPYING" | sed -e 's/^$$/\<P\>/g' >> "$(LICENSE_FILE)"
+ echo "</font></body></html>" >> $(LICENSE_FILE)
+ install -p "$(PD_SRC)/LICENSE.txt" "$(INSTALL_PREFIX)/PD LICENSE.txt"
+
+
+
+WELCOME_FILE = $(INSTALL_PREFIX)/Welcome.html
+welcome:
+ touch $(WELCOME_FILE)
+ echo "<html><body><p><p>" >> $(WELCOME_FILE)
+ echo "<CENTER><IMG SRC=\"logo.jpg\">" >> $(WELCOME_FILE)
+ echo "<h2>Version $(PD_VERSION)</h2>" >> $(WELCOME_FILE)
+ echo "<p>written by Miller S. Puckette</p></CENTER>" >> $(WELCOME_FILE)
+ echo "<FONT SIZE=\"-1\">" >> $(WELCOME_FILE)
+ echo "<p>`grep -A9 ACKNOWLEDG $(PD_SRC)/README.txt`</p>" >> $(WELCOME_FILE)
+ echo "</FONT>" >> $(WELCOME_FILE)
+ echo "</body></html>" >> $(WELCOME_FILE)
+
+
+
+README_FILE = $(INSTALL_PREFIX)/ReadMe.html
+readme:
+ echo $(CYCLONE_RELEASE)
+ -rm $(README_FILE)
+ touch $(README_FILE)
+ echo "<html>" >> $(README_FILE)
+ echo "<head>" >> $(README_FILE)
+ echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />" >> $(README_FILE)
+ echo "</head>" >> $(README_FILE)
+ echo "<body>" >> $(README_FILE)
+ echo "<h2>Pure Data $(PD_VERSION)-$(PACKAGE_VERSION)</h2>" >> $(README_FILE)
+ echo "<p>Pd is a free real-time computer music software package resembling Max. It provides a patchable environment for audio analysis, synthesis, and processing, with a rich set of multimedia capabilities. You can get Pd for Linux, Windows, MacOS X, BSD, or IRIX.</p>" >> $(README_FILE)
+ echo "<p>For more information, go to: <a href=\"http://puredata.org\" target=\"pd\">http://puredata.org</a></p>" >> $(README_FILE)
+ echo "<h3>Installation</h3>" >> $(README_FILE)
+ echo "<p>To install Pd, drag the Pd.app to anywhere in your hard disk.</p>" >> $(README_FILE)
+ echo "<p>To install Gem, pmpd, xsample, dyn~, and vasp support, copy <code>org.puredata.pd.plist</code> to <code>~/Library/Preferences</code> (<code>~</code> means your home folder). WARNING: this will overwrite any existing Pd preferences!</p>" >> $(README_FILE)
+ echo "<h3>Pure Data CVS Developers</h3>" >> $(README_FILE)
+# this may seem whack, but it generates the list of developers from the SourceForge site:
+ curl 'http://sourceforge.net/project/memberlist.php?group_id=55736' | grep -A2 -e '<td>' | sed 's|\(href="\)|target="w" \1http://sourceforge.net|' >> $(README_FILE)
+ echo "</p>" >> $(README_FILE)
+ echo "<p>" >> $(README_FILE)
+ echo "Many others not listed have contributed their time and effort, this is just a list of the current developers in the SourceForge project. But really, every Pd user is a developer and is encouraged to contribute to the CVS repository." >> $(README_FILE)
+ echo "</p>" >> $(README_FILE)
+ echo "<h3>License</h3>" >> $(README_FILE)
+ echo "<p>" >> $(README_FILE)
+ echo "The Pd core is licensed under a <a href="PD%20LICENSE.txt">BSD license</a>, almost every other part of this package is available under the <a href="http://www.gnu.org/copyleft/gpl.html" target="gpl">GNU GPL</a>. A couple packages have BSD-style licenses too." >> $(README_FILE)
+ echo "</p>" >> $(README_FILE)
+ echo "<h3>Included Versions</h3>" >> $(README_FILE)
+ echo "<p>These externals are all included from the Pd CVS repository:</p>" >> $(README_FILE)
+ echo "<ul>" >> $(README_FILE)
+ echo "<li>pure data: $(PD_VERSION) " >> $(README_FILE)
+ echo "<li>cyclone: $(CYCLONE_VERSION)" >> $(README_FILE)
+ echo "<li>flext: $(FLEXT_VERSION)" >> $(README_FILE)
+ echo "<li>gem: $(GEM_VERSION)" >> $(README_FILE)
+ echo "<li>iemlib: `date +20%y.%m.%d`" >> $(README_FILE)
+#
+# these cause this error:
+# Makefile:308: *** unterminated call to function `shell': missing `)'. Stop.
+#
+ echo "<li>maxlib: $(MAXLIB_VERSION)" >> $(README_FILE)
+ echo "<li>osc: $(OSC_VERSION)" >> $(README_FILE)
+ echo "<li>pmpd: $(PMPD_VERSION)" >> $(README_FILE)
+ echo "<li>pd-abstractions: `date +20%y.%m.%d`" >> $(README_FILE)
+ echo "<li>pd-doc: `date +20%y.%m.%d`" >> $(README_FILE)
+ echo "<li>pd-externals: `date +20%y.%m.%d`" >> $(README_FILE)
+ echo "<li>pddp: `date +20%y.%m.%d`" >> $(README_FILE)
+ echo "<li>pdp: $(PDP_VERSION)" >> $(README_FILE)
+ echo "<li>toxy: $(TOXY_VERSION)" >> $(README_FILE)
+ echo "<li>unauthorized: `date +20%y.%m.%d`" >> $(README_FILE)
+ echo "<li>zexy: $(ZEXY_VERSION)" >> $(README_FILE)
+ echo "</ul>" >> $(README_FILE)
+ echo "(this package was built on `date`) <BR>" >> $(README_FILE)
+ echo "</body></html>" >> $(README_FILE)
+
+
+
+#==============================================================================#
+#
+## FINAL ASSEMBLY
+#
+#==============================================================================#
+
+
+#----------------------------------------------------------------------------
+# DOC_FORMAT
+doc_format:
+# clean out cruft files
+ -find $(INSTALL_PREFIX) -name .DS_Store -delete
+ -find $(INSTALL_PREFIX) -name '*.*.bak' -delete
+# run script to move help-*.pd files to *-help.pd according to the standard
+ cd $(DOCS_DEST) && \
+ $(SCRIPTS_SRC)/convert-help-to-standard.sh
+#----------------------------------------------------------------------------
+# remove write perms to prevent people form editing the helpfiles by mistake
+ cd $(DOCS_DEST) && chmod a-wx */*.pd */*/*.pd
+ cd $(DOCS_DEST) && chmod a-w ????*/*.* *.txt
+
+
+
+#==============================================================================#
+#
+# DEVELOPER TARGETS
+#
+#==============================================================================#
+
+devsymlinks:
+
+
+
+patch_pd:
+# change Pd's version number to reflect the extended build
+ sed -i.bak 's/\(pd_version\[\] = "Pd version \)[0-9extndRC.-]*/\1$(PD_VERSION)-$(PACKAGE_VERSION)/' $(PD_SRC)/src/s_main.c
+# apply all platform-neutral patches
+ for patch in $(wildcard $(CWD)/patches/*.patch); do \
+ echo "Applying $$patch"; \
+ cd $(PD_SRC)/src/ && patch -p0 < $$patch; \
+ done
+# apply all platform-specific patches
+ for patch in $(wildcard $(CWD)/patches/$(OS_NAME)/*.patch); do \
+ echo "Applying $$patch"; \
+ cd $(PD_SRC)/src/ && patch -p0 < $$patch; \
+ done
+ -rm -f -- $(PD_SRC)/src/configure $(PD_SRC)/src/makefile
+ @echo " "
+ @echo "patching succeeded!"
+
+unpatch_pd:
+# this sed pattern won't work with TEST versions
+ cd $(PD_SRC)/src && \
+ sed -i.bak 's/\(pd_version\[\] = "Pd version [0-9.]*\)[0-9extndRC.-]*/\1/' \
+ s_main.c
+# apply all platform-neutral patches
+ for patch in $(wildcard $(CWD)/patches/*.patch); do \
+ echo "Applying $$patch"; \
+ cd $(PD_SRC)/src/ && patch -p0 -R < $$patch; \
+ done
+# apply all platform-specific patches
+ for patch in $(wildcard $(CWD)/patches/$(OS_NAME)/*.patch); do \
+ echo "Applying $$patch"; \
+ cd $(PD_SRC)/src/ && patch -p0 -R < $$patch; \
+ done
+ -rm -f -- $(PD_SRC)/src/configure $(PD_SRC)/src/makefile
+ @echo " "
+ @echo "unpatching succeeded!"
+
+
+#==============================================================================#
+#
# CLEAN TARGETS
+#
#==============================================================================#
abstractions_clean:
-cd $(ABSTRACTIONS_SRC) && make $(DEST_PATHS) clean
@@ -126,9 +426,13 @@ gem_clean:
pd_clean:
+ -cd $(PD_SRC) && make $(PD_DEST_PATHS) clean
+
-# these targets are all from Makefile.buildlayout:
-# install_clean cruft_clean
+# these targets are all from Makefile.buildlayout: install_clean cruft_clean
clean: abstractions_clean doc_clean externals_clean flext_clean
clean: gem_clean pd_clean
echo "Complete clean finished."
+
+
+distclean: clean cruft_clean
diff --git a/packages/Makefile.buildlayout b/packages/Makefile.buildlayout
index a5a85e6d..d5b9e9f3 100644
--- a/packages/Makefile.buildlayout
+++ b/packages/Makefile.buildlayout
@@ -70,13 +70,18 @@ EXTERNALS_SRC = $(SRC_ROOT_DIR)/externals
FLEXT_SRC = $(SRC_ROOT_DIR)/externals/grill/flext
GEM_SRC = $(SRC_ROOT_DIR)/Gem
GEMLIBS_SRC = $(SRC_ROOT_DIR)/GemLibs
+PACKAGES_SRC = $(SRC_ROOT_DIR)/packages
PD_SRC = $(SRC_ROOT_DIR)/pd
SCRIPTS_SRC = $(SRC_ROOT_DIR)/scripts
# destinations
APPLICATIONS_DEST = $(DOCS_DEST)/examples
+BIN_DEST = $(INSTALL_PREFIX)/bin
DOCS_DEST = $(INSTALL_PREFIX)/doc
+INCLUDE_DEST = $(INSTALL_PREFIX)/include
+LIB_DEST = $(INSTALL_PREFIX)/lib
+MAN_DEST = $(INSTALL_PREFIX)/man
OBJECTS_DEST = $(INSTALL_PREFIX)/extra
HELP_DEST = $(DOCS_DEST)/5.reference
MANUALS_DEST = $(DOCS_DEST)/manuals
@@ -146,7 +151,7 @@ manuals_clean:
objects_clean:
-rm $(OBJECTS_DEST)/*/*/*.pd
-rm $(OBJECTS_DEST)/*/*.pd
- -rm $(OBJECTS_DEST)/*.pd
+ -rm $(OBJECTS_DEST)/*.pd
-rm $(OBJECTS_DEST)/*/*/*.$(EXTENSION)
-rm $(OBJECTS_DEST)/*/*.$(EXTENSION)
-rm $(OBJECTS_DEST)/*.$(EXTENSION)
diff --git a/packages/README b/packages/README
index b256937c..e4f6c159 100644
--- a/packages/README
+++ b/packages/README
@@ -1,4 +1,19 @@
+Pd-extended build system
+========================
+
+Check out this webpage for full documentation:
+
+ http://puredata.org/docs/developer/build
+
+While you are there, check out the rest of them:
+
+ http://puredata.org/docs/developer/
+
+
+Adding specific package types
+=============================
+
This directory is for package builders for various platforms. The
directories here should be named using the following format:
diff --git a/packages/TODO b/packages/TODO
index 45d83e5d..7525eefc 100644
--- a/packages/TODO
+++ b/packages/TODO
@@ -1,12 +1,26 @@
-- make abstraction -lib loader. when a -lib mylibrary name is tried and fails
- in the path, then fails with IO's altname, then try to load as a path on top
- of extra: i.e. extra/mylibrary. If found, add to path, and add
- doc/5.reference/mylibrary to helppath.
+- global versioning system
+ the package releases should have versions of there own which apply to
+ all packages, regardless of format or OS. This will make for easy and
+ seemless cross-platform work.
+
+- global optimization flags
+ ideally, you would use a version of Pd that is fully optimized for your
+ CPU. In order to do this, a system of optimization flags needs to be
+ developed so that you can specific the target CPU in one place and have
+ everything compile for that CPU.
+
+- libdir
+
+ - document libdir format
+
+ - write .sh script that generates the mylibrary/mylibrary.pd file with the
+ meta data. It should take command line arguments, and put them into the
+ meta file.
- - call it sys_load_lib_folder();,
+- rename "applications" to "examples"
- - insert it after if (!sys_load_lib()) in s_main.c
+- downcase *_DEST and *_SRC to be more readable
- make pd section since I can't easily modify the pd tree
@@ -18,24 +32,11 @@
- merge in tigital's Makefile++
-- move purepd to abstractions
-
- add GRIPD for Anders
- add reg keys for Martin Dupras
- mDNS objects!
-- import nqpoly4 and write helpfiles based on website:
- http://pix.test.at/pd/nqpoly/nqpoly4.html
-
-- global versioning system
- the package releases should have versions of there own which apply to
- all packages, regardless of format or OS. This will make for easy and
- seemless cross-platform work.
-
-- global optimization flags
- ideally, you would use a version of Pd that is fully optimized for your
- CPU. In order to do this, a system of optimization flags needs to be
- developed so that you can specific the target CPU in one place and have
- everything compile for that CPU.
+- make standard targets: distclean (*~, etc.), installdirs (make just the
+ dirs), uninstall instead of install_clean
diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile
index b105d67d..84b74424 100644
--- a/packages/darwin_app/Makefile
+++ b/packages/darwin_app/Makefile
@@ -1,158 +1,53 @@
current: darwin_app
-# Pd needs autoconf 2.59, which is labeled differently on different machines
-PD_AUTOCONF := ${shell ( test -x "`which autoconf-2.59`" && echo autoconf-2.59 ) || echo autoconf }
-
# needed to support weak linking of frameworks
-MAKE=MACOSX_DEPLOYMENT_TARGET=10.2 make
+MAKE=MACOSX_DEPLOYMENT_TARGET=10.3 make
CWD := $(shell pwd)
-DESTDIR = $(CWD)/build
+BUILD_BASE = $(CWD)/build
PD_APP_NAME = Pd
-PD_APP_CONTENTS = $(DESTDIR)/$(PD_APP_NAME).app/Contents
+PD_APP_CONTENTS = $(BUILD_BASE)/$(PD_APP_NAME).app/Contents
INSTALL_PREFIX = $(PD_APP_CONTENTS)/Resources
+SRC_ROOT_DIR = $(CWD)/../..
+BUILDLAYOUT_DIR = $(PACKAGES_SRC)
# source for the Wish Shell.app used to build Pd
# download TclTkAquaStandalone-8.?.*.dmg from http://tcltkaqua.sourceforge.net/
# and mount it. The files will be copied from the mounted .dmg image.
-#WISH_SHELL = /Applications/Utilities/Wish\ Shell.app
+#WISH = /Applications/Utilities/Wish\ Shell.app
TCLTK := $(shell /bin/ls -1r TclTkAquaStandalone-8.?.*.dmg|head -1|sed 's/\.dmg//')
-WISH_SHELL = /Volumes/$(TCLTK)/Wish\ Shell.app
-WISH_SHELL_CONTENTS = $(WISH_SHELL)/Contents
+WISH_NAME = Wish\ Shell
+WISH = /Volumes/$(TCLTK)/$(WISH_NAME).app
+WISH_CONTENTS = $(WISH)/Contents
# locations of the various directories from CVS
SRC_ROOT_DIR = $(CWD)/../..
-ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
-DOC_SRC = $(SRC_ROOT_DIR)/doc
-EXTERNALS_SRC = $(SRC_ROOT_DIR)/externals
-GEM_SRC = $(SRC_ROOT_DIR)/Gem
-GEMLIBS_SRC = $(SRC_ROOT_DIR)/GemLibs
-PD_SRC = $(SRC_ROOT_DIR)/pd
-SCRIPTS_SRC = $(SRC_ROOT_DIR)/scripts
-
-
-# final destinations for compiled files
-ABSTRACTIONS_DST = $(INSTALL_PREFIX)/doc/abstractions
-EXTERNALS_DST = $(INSTALL_PREFIX)/extra
-DOC_DST = $(INSTALL_PREFIX)/doc
-
-
-PD_MAJOR_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | sed 's/char pd_version\[\] = "Pd version \([0-9]\)\.[0-9]*[. TES]*[0-9]*[0-9extndRC.-]*\\n";/\1/')
-PD_MINOR_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | sed 's/char pd_version\[\] = "Pd version [0-9]\.\([0-9]*\)[. TES]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/')
-PD_BUGFIX_VERSION := $(shell /usr/bin/grep 'Pd version' $(PD_SRC)/src/s_main.c | sed 's/char pd_version\[\] = "Pd version [0-9]\.[0-9]*[. TES]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/')
-PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
-
-
-# release version for this distro
-PACKAGE_VERSION = extended-RC2
-PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
-DMG_NAME = $(PACKAGE_NAME)
-
-
-WELCOME_FILE = Welcome.html
-README_FILE = ReadMe.html
-LICENSE_FILE = License.html
-
+include ../Makefile.buildlayout
-CYCLONE_MAJOR_VERSION := $(shell grep CYCLONE_VERSION $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-CYCLONE_RELEASE := $(shell grep CYCLONE_RELEASE $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-CYCLONE_BUILD := $(shell grep CYCLONE_BUILD $(EXTERNALS_SRC)/miXed/cyclone/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-CYCLONE_VERSION := $(CYCLONE_MAJOR_VERSION) $(CYCLONE_RELEASE) $(CYCLONE_BUILD)
+# these are sent to all of the various Makefiles so that they all copy their
+# output to the same directory tree
+DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
+ SRC_ROOT_DIR=$(SRC_ROOT_DIR) \
+ INSTALL_PREFIX=$(INSTALL_PREFIX) \
+ UNAME=$(UNAME)
-FLEXT_VERSION := $(shell grep FLEXTMAJOR $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2).$(shell grep FLEXTMINOR $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2).$(shell grep FLEXTMICRO $(EXTERNALS_SRC)/grill/flext/buildsys/version.inc | cut -d '=' -f2)
+install: darwin_app
-GEM_VERSION := $(shell grep "GEM_VERSION" ../../Gem/src/Base/GemVersion.h | cut -d '"' -f 2)
-
-MAXLIB_VERSION := $(shell grep "define VERSION" $(EXTERNALS_SRC)/maxlib/maxlib.c | cut -d '"' -f 2)
-
-OSC_VERSION := $(shell grep "define VERSION" $(EXTERNALS_SRC)/OSCx/src/OSC.c | cut -d '"' -f 2)
-
-PDP_VERSION := $(shell grep PDP_VERSION= $(EXTERNALS_SRC)/pdp/configure | cut -d '=' -f 2)
-
-PMPD_VERSION := $(shell grep "define VERSION" $(EXTERNALS_SRC)/pmpd/src/pmpd.c | cut -d '"' -f 2)
-
-TOXY_MAJOR_VERSION := $(shell grep TOXY_VERSION $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-TOXY_RELEASE := $(shell grep TOXY_RELEASE $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-TOXY_BUILD := $(shell grep TOXY_BUILD $(EXTERNALS_SRC)/miXed/toxy/build_counter | cut -d ' ' -f 3 | cut -d '"' -f 2)
-TOXY_VERSION := $(TOXY_MAJOR_VERSION) $(TOXY_RELEASE) $(TOXY_BUILD)
-
-ZEXY_VERSION := $(shell grep VERSION $(EXTERNALS_SRC)/zexy/src/zexy.h | cut -d ' ' -f 3 | cut -d '"' -f 2)
-
-
-darwin_app: darwin_app_core darwin_prebuilt_app
+#------------------------------------------------------------------------------#
+darwin_app: darwin_app_core extended_app_install
+#------------------------------------------------------------------------------#
# this target is for when you already have a pre-built Pd.app and you
# just want to fill it with goodies from CVS. To do so, place your
-# Pd.app in $(DESTDIR)/Pd.app
-darwin_prebuilt_app: darwin_app_externals darwin_app_docs \
- darwin_app_abstractions darwin_app_noncvs darwin_app_doc_format
-
-darwin_app_license:
- # generate HTML version of License
- echo "<html><body>" > $(LICENSE_FILE)
- echo "<h3>(Parts of this package can be used under the Pd/BSD license)</h3>" >> $(LICENSE_FILE)
- echo "<font size=\"-1\">" >> $(LICENSE_FILE)
- cat $(EXTERNALS_SRC)/creb/COPYING | sed -e 's/^$$/\<P\>/g' >> $(LICENSE_FILE)
- echo "</font></body></html>" >> $(LICENSE_FILE)
-
-
-darwin_app_readme:
- echo $(CYCLONE_RELEASE)
- -rm $(README_FILE)
- echo "<html>" > $(README_FILE)
- echo "<head>" >> $(README_FILE)
- echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-1\" />" >> $(README_FILE)
- echo "</head>" >> $(README_FILE)
- echo "<body>" >> $(README_FILE)
- echo "<h2>Pure Data $(PD_VERSION)-$(PACKAGE_VERSION)</h2>" >> $(README_FILE)
- echo "<p>Pd is a free real-time computer music software package resembling Max. It provides a patchable environment for audio analysis, synthesis, and processing, with a rich set of multimedia capabilities. You can get Pd for Linux, Windows, MacOS X, BSD, or IRIX.</p>" >> $(README_FILE)
- echo "<p>For more information, go to: <a href=\"http://puredata.org\" target=\"pd\">http://puredata.org</a></p>" >> $(README_FILE)
- echo "<h3>Installation</h3>" >> $(README_FILE)
- echo "<p>To install Pd, drag the Pd.app to anywhere in your hard disk.</p>" >> $(README_FILE)
- echo "<p>To install Gem and pmpd support, copy <code>org.puredata.pd.plist</code> to <code>~/Library/Preferences</code> (<code>~</code> means your home folder).</p>" >> $(README_FILE)
- echo "<h3>Pure Data CVS Developers</h3>" >> $(README_FILE)
-# this may seem whack, but it generates the list of developers from the SourceForge site:
- curl 'http://sourceforge.net/project/memberlist.php?group_id=55736' | grep -e '<td>' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba' | grep -v '^$$' | sed -e 's/\t*/ - /' >> $(README_FILE)
- echo "</p>" >> $(README_FILE)
- echo "<p>" >> $(README_FILE)
- echo "Many others not listed have contributed their time and effort, this is just a list of the current developers in the SourceForge project. But really, every Pd user is a developer and is encouraged to contribute to the CVS repository." >> $(README_FILE)
- echo "</p>" >> $(README_FILE)
- echo "<h3>License</h3>" >> $(README_FILE)
- echo "<p>" >> $(README_FILE)
- echo "The Pd core is licensed under a BSD license, almost every other part of this package is available under the GNU GPL. A couple packages have BSD-style licenses too." >> $(README_FILE)
- echo "</p>" >> $(README_FILE)
- echo "<h3>Included Versions</h3>" >> $(README_FILE)
- echo "<p>These externals are all included from the Pd CVS repository:</p>" >> $(README_FILE)
- echo "<ul>" >> $(README_FILE)
- echo "<li>pure data: $(PD_VERSION) " >> $(README_FILE)
- echo "<li>cyclone: $(CYCLONE_VERSION)" >> $(README_FILE)
- echo "<li>flext: $(FLEXT_VERSION)" >> $(README_FILE)
- echo "<li>gem: $(GEM_VERSION)" >> $(README_FILE)
- echo "<li>iemlib: `date +20%y.%m.%d`" >> $(README_FILE)
-#
-# these cause this error:
-# Makefile:308: *** unterminated call to function `shell': missing `)'. Stop.
-#
- echo "<li>maxlib: $(MAXLIB_VERSION)" >> $(README_FILE)
- echo "<li>osc: $(OSC_VERSION)" >> $(README_FILE)
- echo "<li>pmpd: $(PMPD_VERSION)" >> $(README_FILE)
- echo "<li>pd-abstractions: `date +20%y.%m.%d`" >> $(README_FILE)
- echo "<li>pd-doc: `date +20%y.%m.%d`" >> $(README_FILE)
- echo "<li>pd-externals: `date +20%y.%m.%d`" >> $(README_FILE)
- echo "<li>pddp: `date +20%y.%m.%d`" >> $(README_FILE)
- echo "<li>pdp: $(PDP_VERSION)" >> $(README_FILE)
- echo "<li>toxy: $(TOXY_VERSION)" >> $(README_FILE)
- echo "<li>unauthorized: `date +20%y.%m.%d`" >> $(README_FILE)
- echo "<li>zexy: $(ZEXY_VERSION)" >> $(README_FILE)
- echo "</ul>" >> $(README_FILE)
- echo "(this package was built on `date`) <BR>" >> $(README_FILE)
- echo "</body></html>" >> $(README_FILE)
+# Pd.app in $(BUILD_BASE)/Pd.app
+extended_app_install: extended_install darwin_app_noncvs darwin_app_doc_format
+#------------------------------------------------------------------------------#
# check here for a reference on how to do this:
# http://cvs.sourceforge.net/viewcvs.py/tkcvs/tkcvs-proj/PackApp?rev=1.4
darwin_app_wrapper:
@@ -161,152 +56,81 @@ darwin_app_wrapper:
# note: use the "standalone" Wish shell to make a "standalone" pd app
install -d "$(PD_APP_CONTENTS)/MacOS"
install -m0755 -p \
- $(WISH_SHELL_CONTENTS)/MacOS/Wish\ Shell \
+ $(WISH_CONTENTS)/MacOS/$(WISH_NAME) \
"$(PD_APP_CONTENTS)/MacOS"
install -d "$(PD_APP_CONTENTS)/Resources"
install -m0644 -p \
- $(WISH_SHELL_CONTENTS)/Resources/Wish\ Shell.rsrc \
+ $(WISH_CONTENTS)/Resources/Wish\ Shell.rsrc \
"$(PD_APP_CONTENTS)/Resources"
install -d "$(PD_APP_CONTENTS)/Frameworks"
- cp -Rp $(WISH_SHELL_CONTENTS)/Frameworks "$(PD_APP_CONTENTS)"
+ cp -Rp $(WISH_CONTENTS)/Frameworks "$(PD_APP_CONTENTS)"
# set up app wrapper
install -d "$(PD_APP_CONTENTS)/Resources/Scripts"
install -m0644 -p Info.plist "$(PD_APP_CONTENTS)"
install -m0644 -p *.icns "$(PD_APP_CONTENTS)/Resources"
-# rename the Wish Shell executable to "Pd"
+# rename the Wish Shell executable to "pd", the all lowercase is important
+# since it needs to match the pd executable in order for the Gem windows to
+# get focus properly
mv "$(PD_APP_CONTENTS)/MacOS/Wish Shell" \
- "$(PD_APP_CONTENTS)/MacOS/Pd"
+ "$(PD_APP_CONTENTS)/MacOS/pd"
# diskutil eject /Volumes/$(TCLTK)
-darwin_patch_pd:
- sed -i.bak 's/\(pd_version\[\] = "Pd version \)[0-9extndRC.-]*/\1$(PD_VERSION)-$(PACKAGE_VERSION)/' \
- $(PD_SRC)/src/s_main.c
- cd $(PD_SRC)/src/ && patch -p0 < \
- ../../packages/darwin_app/patches/darwin_linking_fixes.patch
- cd $(PD_SRC)/src/ && patch -p0 < \
- ../../packages/darwin_app/patches/extended-help-menu.patch
- cd $(PD_SRC)/src/ && patch -p0 < \
- ../../packages/darwin_app/patches/display_tweaks.patch
- -rm -f -- $(PD_SRC)/src/configure $(PD_SRC)/src/makefile
+
+#------------------------------------------------------------------------------#
darwin_app_core: darwin_app_wrapper
-# pd core
-# cd $(PD_SRC)/src/ && $(PD_AUTOCONF) && ./configure && $(MAKE)
-# or pd core with jack
- cd $(PD_SRC)/src/ && $(PD_AUTOCONF) && ./configure --enable-jack && $(MAKE)
- cp -Rp -- $(PD_SRC)/bin $(PD_SRC)/doc $(PD_SRC)/extra $(PD_SRC)/man \
- $(INSTALL_PREFIX)
-# AppMain.tcl
+ cd $(PACKAGES_SRC) && \
+ make $(DEST_PATHS) PD_CONFIGURE_FLAGS=--enable-jack pd_install
+# tigital's Gem window focus black magic:
+ /Developer/tools/Rez -t APPL mac.r -o $(BIN_DEST)/pd
cd "$(PD_APP_CONTENTS)/Resources/Scripts" && \
ln -s ../bin/pd.tk AppMain.tcl
+# support for Info Panel Plugins mgmt
+ cd "$(PD_APP_CONTENTS)" && ln -s Resources/extra Plugins
# Headers
- install -d -m0755 $(INSTALL_PREFIX)/include
- install -m0444 $(PD_SRC)/src/*.h $(INSTALL_PREFIX)/include
+ install -d $(INSTALL_PREFIX)/include
+ install $(PD_SRC)/src/*.h $(INSTALL_PREFIX)/include
# run script to move help-*.pd files to *-help.pd according to the standard
- cd $(DOC_DST)/5.reference && \
+ cd $(DOCS_DEST) && \
$(SCRIPTS_SRC)/convert-help-to-standard.sh
darwin_app_doc_format:
-#----------------------------------------------------------------------------
-# clean out cruft files
- -find $(PD_APP_CONTENTS) -name .DS_Store -delete
- -rm -Rf `find $(INSTALL_PREFIX) -name CVS`
# set the font to 10pt on all help patches
# the BSD/Darwin version of sed must create a backup file when doing
# in-place replacement, so delete the unneeded backup files
- cd $(DOC_DST) && \
+ cd $(DOCS_DEST) && \
sed -i.bak 's/^\(\#N canvas [0-9]* [0-9]* [0-9]* [0-9]*\) 12/\1 10/' \
- */*.pd */*/*.pd && \
- rm -f -- */*.pd.bak
-# run script to move help-*.pd files to *-help.pd according to the standard
- cd $(DOC_DST)/5.reference && \
- $(SCRIPTS_SRC)/convert-help-to-standard.sh
-#----------------------------------------------------------------------------
-# remove write perms to prevent people form editing the helpfiles by mistake
- cd $(DOC_DST) && chmod a-wx */*.pd */*/*.pd
- cd $(DOC_DST)/5.reference && chmod a-w ????*/*.* *.txt
-
-
-darwin_app_docs:
-#----------------------------------------------------------------------------
-# externals help patches
- install -d $(DOC_DST)/5.reference
- cd $(EXTERNALS_SRC)/build/doc && $(MAKE)
- cp -Rp $(EXTERNALS_SRC)/build/doc/* $(DOC_DST)/5.reference
-#----------------------------------------------------------------------------
-# DOC
- install -d $(DOC_DST)/7.stuff
- cp -Rp $(DOC_SRC)/tutorials $(DOC_DST)
- cp -Rp $(DOC_SRC)/additional/pd-msg $(DOC_DST)/7.stuff/
-#----------------------------------------------------------------------------
-# PDDP
- install -m644 --group=staff $(DOC_SRC)/pddp/*.pd $(DOC_DST)/5.reference
-#----------------------------------------------------------------------------
-# DOC menus
- install -d $(DOC_DST)/menus
- cp -p ./doc-menu.pd $(DOC_DST)/menus
- ./mkdocs $(DOC_DST)/2.control.examples >! $(DOC_DST)/menus/2.control.examples.pd
- ./mkdocs $(DOC_DST)/3.audio.examples >! $(DOC_DST)/menus/3.audio.examples.pd
- ./mkdocs $(DOC_DST)/4.fft.examples >! $(DOC_DST)/menus/4.fft.examples.pd
- ./mkdocs $(DOC_DST)/5.reference >! $(DOC_DST)/menus/5.reference.pd
+ */*.pd */*/*.pd */*/*/*.pd
+#==============================================================================#
+#
+## CVS SOURCES
+#
+#==============================================================================#
-darwin_app_abstractions:
-#----------------------------------------------------------------------------
-# ABSTRACTIONS
- install -d $(ABSTRACTIONS_DST)
-# audionerd
- cp -Rp $(ABSTRACTIONS_SRC)/audionerd $(ABSTRACTIONS_DST)
-# footils
- cp -Rp $(ABSTRACTIONS_SRC)/footils $(ABSTRACTIONS_DST)
-# keyboardkeys
- cp -Rp $(ABSTRACTIONS_SRC)/keyboardkeys $(ABSTRACTIONS_DST)
-#----------------------------------------------------------------------------
-# EXTERNALS written in Pd
-# RRADical
- cp -Rp $(ABSTRACTIONS_SRC)/rradical $(EXTERNALS_DST)
- cp -Rp $(ABSTRACTIONS_SRC)/rradical/doc $(DOC_DST)/rradical
-# footils
- install -p $(ABSTRACTIONS_SRC)/footils/softtakeover/sto-help.pd \
- $(DOC_DST)/5.reference
- install -p $(ABSTRACTIONS_SRC)/footils/softtakeover/sto.pd $(EXTERNALS_DST)
-# fft_convolution
- install -p $(ABSTRACTIONS_SRC)/fft_convolution/*-help.pd \
- $(DOC_DST)/5.reference
- install -p -m0644 $(shell ls -1 $(ABSTRACTIONS_SRC)/fft_convolution/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)
-# La-kitchen
- install -d $(DOC_DST)/5.reference/La-kitchen
- install -p $(ABSTRACTIONS_SRC)/La-kitchen/*-help.pd \
- $(DOC_DST)/5.reference/La-kitchen
- install -d $(EXTERNALS_DST)/La-kitchen
- install -p -m0644 $(shell ls -1 $(ABSTRACTIONS_SRC)/La-kitchen/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)/La-kitchen
-# nusmuk
- install -d $(DOC_DST)/5.reference/nusmuk
- install -p $(ABSTRACTIONS_SRC)/nusmuk/*-help.pd \
- $(DOC_DST)/5.reference/nusmuk
- install -d $(EXTERNALS_DST)/nusmuk
- install -p -m0644 $(shell ls -1 $(ABSTRACTIONS_SRC)/nusmuk/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)/nusmuk
-# timestretch~
- install -p $(ABSTRACTIONS_SRC)/timestretch/*-help.pd \
- $(DOC_DST)/5.reference
- install -p -m0644 $(shell ls -1 $(ABSTRACTIONS_SRC)/timestretch/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)
-# vadsr~
- install -p $(ABSTRACTIONS_SRC)/vadsr~/vadsr-test.pd \
- $(DOC_DST)/5.reference/vadsr~-help.pd
- install -p $(ABSTRACTIONS_SRC)/vadsr~/vadsr~.pd $(EXTERNALS_DST)
+extended_install:
+ cd $(PACKAGES_SRC) && make $(DEST_PATHS) install
+#------------------------------------------------------------------------------#
darwin_app_externals: darwin_app_externals_standard darwin_app_externals_c++ darwin_app_externals_flext
#darwin_app_externals: darwin_app_externals_standard darwin_app_externals_c++ darwin_app_externals_gem
+
+#------------------------------------------------------------------------------#
+# GEM
darwin_app_externals_gem:
- cd ../../Gem && pbxbuild
+ cd $(GEM_SRC)/Gem && xcodebuild
+ install -p -m0644 $(GEM_SRC)/Gem/help/*.* $(HELP_DEST)
+ install -d $(DOCS_DEST)/Gem/doc
+ install -p -m0644 $(GEM_SRC)/Gem/doc/*.* $(DOCS_DEST)/gem
+ install -d $(DOCS_DEST)/Gem/00.manual
+ install -p -m0644 $(GEM_SRC)/Gem/manual/*.* $(DOCS_DEST)/gem/00.manual
+ cp -Rfp $(GEM_SRC)/Gem/examples/*.* $(GEM_SRC)/Gem/examples/data $(DOCS_DEST)/gem
+
+#------------------------------------------------------------------------------#
darwin_app_externals_flext:
#----------------------------------------------------------------------------
# FLEXT
@@ -315,6 +139,7 @@ darwin_app_externals_flext:
cp $(EXTERNALS_SRC)/grill/flext/buildsys/mac/pd/config-gcc.def \
$(EXTERNALS_SRC)/grill/flext/buildsys/config-mac-pd-gcc.txt
# end temp hack
+# tigital 8/30/2005 added
cd $(EXTERNALS_SRC)/grill/flext && \
( \
test -f buildsys/config-mac-pd-gcc.txt || \
@@ -325,8 +150,18 @@ darwin_app_externals_flext:
) && \
( \
cat buildsys/config-mac-pd-gcc.txt | \
- sed "s/^PDPATH=.*/PDPATH=..\/..\/..\/pd/" | \
- sed "s/^FLEXTPREFIX=.*/FLEXTPREFIX=@executable_path\/..\/extra/" > buildsys/config-mac-pd-gcc.txt \
+ sed "s/^PDPATH=.*/PDPATH=..\/..\/..\/pd/" > buildsys/config-mac-pd-gcc.txt \
+ ) && \
+ ( \
+ cat package.txt | sed "s/^PRECOMPILE=.*/PRECOMPILE=/" > package.txt \
+ ) && \
+ ( \
+ cat buildsys/mac/pd/gnumake-gcc-ext.inc | \
+ sed "s/^LDFLAG\S +=.*/LDFLAG\S += -bundle -bundle_loader ..\/..\/..\/pd\/bin\/pd/" > buildsys/mac/pd/gnumake-gcc-ext.inc \
+ ) && \
+ ( \
+ cat buildsys/mac/pd/gnumake-gcc-flext.inc | \
+ sed "s/^LDFLAG\S +=.*/LDFLAG\S += -dynamiclib -undefined dynamic_lookup /" > buildsys/mac/pd/gnumake-gcc-flext.inc \
) && \
( \
test -f config.txt || \
@@ -335,218 +170,122 @@ darwin_app_externals_flext:
echo Copied template flext config file \
) \
) && \
- bash build.sh pd gcc build-release-shared
- install -p -m0444 $(EXTERNALS_SRC)/grill/flext/pd-darwin/release-shared/libflext-pd.$(FLEXT_VERSION).dylib $(EXTERNALS_DST)
- ln -sf libflext-pd.$(FLEXT_VERSION).dylib $(EXTERNALS_DST)/libflext-pd.dylib
- install -d $(DOC_DST)/tutorials
- cp -rp $(EXTERNALS_SRC)/grill/flext/tutorial $(DOC_DST)/tutorials/flext
- install -d $(DOC_DST)/flext
+ MACOSX_DEPLOYMENT_TARGET=10.3 bash build.sh pd gcc build-release-shared FLEXTLIB=@executable_path/../extra FLEXTINC=../flext/source FLEXTSYS=$(OBJECTS_DEST)
+ ln -sf $(EXTERNALS_SRC)/grill/flext/pd-darwin/release-shared/libflext-pd.$(FLEXT_VERSION).dylib $(EXTERNALS_SRC)/grill/flext/pd-darwin/release-shared/libflext-pd.dylib
+ install -p -m0444 $(EXTERNALS_SRC)/grill/flext/pd-darwin/release-shared/libflext-pd.$(FLEXT_VERSION).dylib $(OBJECTS_DEST)
+ ln -sf libflext-pd.$(FLEXT_VERSION).dylib $(OBJECTS_DEST)/libflext-pd.dylib
+ install -d $(DOCS_DEST)/tutorials
+ cp -rp $(EXTERNALS_SRC)/grill/flext/tutorial $(DOCS_DEST)/tutorials/flext
+ install -d $(DOCS_DEST)/flext
install -p -m0644 $(EXTERNALS_SRC)/grill/flext/gpl.txt \
$(EXTERNALS_SRC)/grill/flext/readme.txt \
$(EXTERNALS_SRC)/grill/flext/license.txt \
- $(DOC_DST)/flext
+ $(DOCS_DEST)/flext
# FLEXTERNALS
#########
# dyn~
- cd $(EXTERNALS_SRC)/grill/dynext && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(EXTERNALS_DST) FLEXTINC=../flext/source
- install -p -m0444 $(EXTERNALS_SRC)/grill/dynext/pd-darwin/release-shared/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/grill/dynext/pd/*.pd $(DOC_DST)/5.reference
- install -d $(DOC_DST)/dynext
- install -p -m0644 $(EXTERNALS_SRC)/grill/dynext/gpl.txt \
+ cd $(EXTERNALS_SRC)/grill/dynext && bash ../flext/build.sh pd gcc build-release-shared FLEXTLIB=../flext/pd-darwin/release-shared FLEXTINC=../flext/source FLEXTSYS=$(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/grill/dynext/pd-darwin/release-shared/*.pd_darwin $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/grill/dynext/pd/*.pd $(DOCS_DEST)
+ install -d $(DOCS_DEST)/dynext
+ install -p $(EXTERNALS_SRC)/grill/dynext/gpl.txt \
$(EXTERNALS_SRC)/grill/dynext/readme.txt \
$(EXTERNALS_SRC)/grill/dynext/license.txt \
- $(DOC_DST)/dynext
+ $(DOCS_DEST)/dynext
#########
# pool
- cd $(EXTERNALS_SRC)/grill/pool && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(EXTERNALS_DST) FLEXTINC=../flext/source
- install -p -m0444 $(EXTERNALS_SRC)/grill/pool/pd-darwin/release-shared/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/grill/pool/help-pool.pd $(DOC_DST)/5.reference
- install -d $(DOC_DST)/pool
- install -p -m0644 $(EXTERNALS_SRC)/grill/pool/gpl.txt \
+ cd $(EXTERNALS_SRC)/grill/pool && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(OBJECTS_DEST) FLEXTINC=../flext/source
+ install -p $(EXTERNALS_SRC)/grill/pool/pd-darwin/release-shared/*.pd_darwin $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/grill/pool/help-pool.pd $(DOCS_DEST)
+ install -d $(DOCS_DEST)/pool
+ install -p $(EXTERNALS_SRC)/grill/pool/gpl.txt \
$(EXTERNALS_SRC)/grill/pool/readme.txt \
$(EXTERNALS_SRC)/grill/pool/license.txt \
- $(DOC_DST)/pool
+ $(DOCS_DEST)/pool
#########
# py/pyext
# cd $(EXTERNALS_SRC)/grill/py && \
# ( \
# cp -f build/config-mac.def config.txt \
# ) && \
-# bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(EXTERNALS_DST) FLEXTINC=../flext/source
-# install -p -m0444 $(EXTERNALS_SRC)/grill/py/pd-darwin/release-shared/*.pd_darwin $(EXTERNALS_DST)
+# bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(OBJECTS_DEST) FLEXTINC=../flext/source
+# install -p -m0444 $(EXTERNALS_SRC)/grill/py/pd-darwin/release-shared/*.pd_darwin $(OBJECTS_DEST)
# this wasn't building for me -HCS 2005-06-09
- install -d $(DOC_DST)/py/examples
- install -d $(DOC_DST)/py/scripts
- install -p -m0644 $(EXTERNALS_SRC)/grill/py/pd/*.pd $(DOC_DST)/py/examples
- install -p -m0644 $(EXTERNALS_SRC)/grill/py/scripts/*.py $(DOC_DST)/py/scripts
- install -p -m0644 $(EXTERNALS_SRC)/grill/py/gpl.txt \
+ install -d $(DOCS_DEST)/py/examples
+ install -d $(DOCS_DEST)/py/scripts
+ install -p $(EXTERNALS_SRC)/grill/py/pd/*.pd $(DOCS_DEST)/py/examples
+ install -p $(EXTERNALS_SRC)/grill/py/scripts/*.py $(DOCS_DEST)/py/scripts
+ install -p $(EXTERNALS_SRC)/grill/py/gpl.txt \
$(EXTERNALS_SRC)/grill/py/readme.txt $(EXTERNALS_SRC)/grill/py/license.txt \
- $(DOC_DST)/py
+ $(DOCS_DEST)/py
# install -d $(INSTALL_PREFIX)/Library/Frameworks
# cp -R /Library/Frameworks/Python.framework $(INSTALL_PREFIX)/Library/Frameworks
#########
# vasp
# fails without the dir
# test -d ../../vasp/pd-darwin || mkdir -p ../../vasp/pd-darwin
-# cd $(EXTERNALS_SRC)/grill/vasp/ && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(EXTERNALS_DST) FLEXTINC=../flext/source
-# install -p -m0444 $(EXTERNALS_SRC)/grill/vasp/pd-darwin/release-shared/*.pd_darwin $(EXTERNALS_DST)
+# cd $(EXTERNALS_SRC)/grill/vasp/ && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(OBJECTS_DEST) FLEXTINC=../flext/source
+# install -p -m0444 $(EXTERNALS_SRC)/grill/vasp/pd-darwin/release-shared/*.pd_darwin $(OBJECTS_DEST)
# this wasn't building for me -HCS 2005-06-09
- install -p -m0644 $(EXTERNALS_SRC)/grill/vasp/pd-help/*.pd $(DOC_DST)/5.reference
- install -d $(DOC_DST)/vasp
+ install -p -m0644 $(EXTERNALS_SRC)/grill/vasp/pd-help/*.pd $(DOCS_DEST)
+ install -d $(DOCS_DEST)/vasp
install -p -m0644 $(EXTERNALS_SRC)/grill/vasp/gpl.txt \
$(EXTERNALS_SRC)/grill/vasp/readme.txt \
$(EXTERNALS_SRC)/grill/vasp/license.txt \
$(EXTERNALS_SRC)/grill/vasp/changes.txt \
$(EXTERNALS_SRC)/grill/vasp/todo.txt \
- $(DOC_DST)/vasp
- cp -rp $(EXTERNALS_SRC)/grill/vasp/pd-ex $(DOC_DST)/vasp
+ $(DOCS_DEST)/vasp
+ cp -rp $(EXTERNALS_SRC)/grill/vasp/pd-ex $(DOCS_DEST)/vasp
#########
# xsample
- cd $(EXTERNALS_SRC)/grill/xsample && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(EXTERNALS_DST) FLEXTINC=../flext/source
- install -p -m0444 $(EXTERNALS_SRC)/grill/xsample/pd-darwin/release-shared/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/grill/xsample/pd/*.pd $(DOC_DST)/5.reference
- install -d $(DOC_DST)/xsample
+ cd $(EXTERNALS_SRC)/grill/xsample && bash ../flext/build.sh pd gcc build-release-shared FLEXTPREFIX=. FLEXTLIB=$(OBJECTS_DEST) FLEXTINC=../flext/source
+ install -p -m0444 $(EXTERNALS_SRC)/grill/xsample/pd-darwin/release-shared/*.pd_darwin $(OBJECTS_DEST)
+ install -p -m0644 $(EXTERNALS_SRC)/grill/xsample/pd/*.pd $(DOCS_DEST)
+ install -d $(DOCS_DEST)/xsample
install -p -m0644 $(EXTERNALS_SRC)/grill/xsample/gpl.txt \
$(EXTERNALS_SRC)/grill/xsample/readme.txt \
$(EXTERNALS_SRC)/grill/xsample/license.txt \
- $(DOC_DST)/xsample
+ $(DOCS_DEST)/xsample
########## FOOTILS #########
# syncgrain
# cd $(EXTERNALS_SRC)/footils/syncgrain/ && $(MAKE) -f makefile.pd-darwin
# install -p -m0444 $(EXTERNALS_SRC)/footils/syncgrain/pd-darwin/*.pd_darwin \
-# $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/footils/syncgrain/pd/*.* $(DOC_DST)/5.reference
+# $(OBJECTS_DEST)
+ install -p -m0644 $(EXTERNALS_SRC)/footils/syncgrain/pd/*.* $(DOCS_DEST)
-darwin_app_externals_standard:
-#----------------------------------------------------------------------------
-# PD-EXTERNALS
- -cd $(EXTERNALS_SRC)/build/darwin && $(MAKE) -k
- install -d $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/build/darwin/*.pd_darwin $(EXTERNALS_DST)
-# creb
- install -d $(EXTERNALS_DST)/creb
- install -p -m0644 $(EXTERNALS_SRC)/creb/abs/*.pd $(EXTERNALS_DST)/creb
- install -d $(DOC_DST)/5.reference/creb
- install -p -m0644 $(EXTERNALS_SRC)/creb/doc/examples/*.* \
- $(DOC_DST)/5.reference/creb
-#----------------------------------------------------------------------------
-# GEM
- install -p -m0644 ../../Gem/help/*.* $(DOC_DST)/5.reference
- install -d $(DOC_DST)/Gem/doc
- install -p -m0644 ../../Gem/doc/*.* $(DOC_DST)/gem
- install -d $(DOC_DST)/Gem/00.manual
- install -p -m0644 ../../Gem/manual/*.* $(DOC_DST)/gem/00.manual
- cp -Rfp ../../Gem/examples/*.* ../../Gem/examples/data $(DOC_DST)/gem
-#----------------------------------------------------------------------------
-# hcs
- install -p -m0644 $(shell ls -1 $(EXTERNALS_SRC)/hcs/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)
-# hid
- cd $(EXTERNALS_SRC)/hcs/hid && $(MAKE)
- install -p -m0644 $(EXTERNALS_SRC)/hcs/hid/hid.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(shell ls -1 $(EXTERNALS_SRC)/hcs/hid/*.pd | \
- grep -v '\-help.pd'| grep -v '\-list.pd') $(EXTERNALS_DST)
-# general
- install -p -m0644 $(EXTERNALS_SRC)/hcs/general/*.pd $(EXTERNALS_DST)
-# pan
- install -p -m0644 $(shell ls -1 $(EXTERNALS_SRC)/hcs/pan/*.pd | \
- grep -v '\-help.pd') $(EXTERNALS_DST)
-#----------------------------------------------------------------------------
-# IEMlib
- cp -Rp $(EXTERNALS_SRC)/iemlib/iemabs $(EXTERNALS_DST)
- install -d -m0755 $(DOC_DST)/5.reference/iemabs
- mv $(EXTERNALS_DST)/iemabs/help-*.pd $(DOC_DST)/5.reference/iemabs
-#----------------------------------------------------------------------------
-# miXed
- cd $(EXTERNALS_SRC)/miXed/toxy && $(MAKE)
- cd $(EXTERNALS_SRC)/miXed/cyclone && $(MAKE)
- cd $(EXTERNALS_SRC)/miXed/pddp && $(MAKE)
- install -d -m755 $(EXTERNALS_DST)
- install -p -m444 $(EXTERNALS_SRC)/miXed/bin/*.pd_darwin $(EXTERNALS_DST)
- install -p -m555 $(EXTERNALS_SRC)/miXed/bin/cyclist $(INSTALL_PREFIX)/bin
- install -d -m755 $(DOC_DST)/5.reference/cyclone
- install -p -m0644 $(EXTERNALS_SRC)/miXed/test/*/*.* \
- $(DOC_DST)/5.reference/cyclone
- install -p -m0644 $(EXTERNALS_SRC)/miXed/doc/*/*/*.* \
- $(DOC_DST)/5.reference
-#----------------------------------------------------------------------------
-# OSC
- cd $(EXTERNALS_SRC)/OSCx && ./configure && $(MAKE)
- install -p -m0644 $(EXTERNALS_SRC)/OSCx/doc/*.* $(DOC_DST)/5.reference
- install -p -m0444 $(EXTERNALS_SRC)/OSCx/src/*.pd_darwin $(EXTERNALS_DST)
-#----------------------------------------------------------------------------
-# PdP
-# cd $(EXTERNALS_SRC)/pdp && ./configure && $(MAKE)
-# install -p -m0444 $(EXTERNALS_SRC)/pdp/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/pdp/doc/objects/*.* $(DOC_DST)/5.reference
- install -d $(DOC_DST)/pdp/introduction
- install -p -m0644 $(EXTERNALS_SRC)/pdp/doc/introduction/*.* $(DOC_DST)/pdp/introduction
- install -d $(DOC_DST)/pdp/examples
- install -p -m0644 $(EXTERNALS_SRC)/pdp/doc/examples/*.* $(DOC_DST)/pdp/examples
- install -p -m0644 $(EXTERNALS_SRC)/pdp/doc/reference.txt $(DOC_DST)/pdp
-# libs for PdP
-#----------------------------------------------------------------------------
-# unauthorized
- cd $(EXTERNALS_SRC)/unauthorized && $(MAKE)
- install -p -m0444 $(EXTERNALS_SRC)/unauthorized/*/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/unauthorized/*/*.pd $(DOC_DST)/5.reference
- install -p -m0644 $(EXTERNALS_SRC)/unauthorized/*/*.txt $(DOC_DST)/5.reference
- install -p -m0644 $(EXTERNALS_SRC)/unauthorized/*/*.pls $(DOC_DST)/5.reference
- cp -Rfp $(EXTERNALS_SRC)/unauthorized/blinkenlights/blm $(DOC_DST)/5.reference
-#----------------------------------------------------------------------------
-# zexy
-# new build system doesn't work with CVS layout, and most of zexy is
-# included in the extrnals build system now anyway
-# cd $(EXTERNALS_SRC)/zexy/src && autoconf && ./configure && $(MAKE)
- -install -p -m0444 $(EXTERNALS_SRC)/zexy/src/*.pd_darwin $(EXTERNALS_DST)
- install -p -m0444 \
- $(shell ls -1 $(EXTERNALS_SRC)/zexy/abs/*.pd | \
- grep -v '-help.pd' | sed 's/\([&<>|~]\)/\\\1/g') \
- $(EXTERNALS_DST)
- install -p -m0644 $(EXTERNALS_SRC)/zexy/abs/*-help.pd $(DOC_DST)/5.reference
darwin_app_externals_c++:
#----------------------------------------------------------------------------
# CREB
# cd $(EXTERNALS_SRC)/creb && autoconf && ./configure && cd modules++ && $(MAKE)
-# install -p -m0644 $(EXTERNALS_SRC)/creb/modules++/*.pd_darwin $(EXTERNALS_DST)
+# install -p -m0644 $(EXTERNALS_SRC)/creb/modules++/*.pd_darwin $(OBJECTS_DEST)
#----------------------------------------------------------------------------
# gem2pdp
# cd $(EXTERNALS_SRC)/gem2pdp && $(MAKE) -f Makefile.darwin
-# install -p -m0444 $(EXTERNALS_SRC)/gem2pdp/*.pd_darwin $(EXTERNALS_DST)
+# install -p -m0444 $(EXTERNALS_SRC)/gem2pdp/*.pd_darwin $(OBJECTS_DEST)
#----------------------------------------------------------------------------
# GridFlow
# cd ../../gridflow && ./configure && $(MAKE)
-darwin_app_welcome:
- echo "<html><body><p><p>" > $(WELCOME_FILE)
- echo "<CENTER><IMG SRC=\"logo.jpg\">" >> $(WELCOME_FILE)
- echo "<h2>Version $(PD_VERSION)</h2>" >> $(WELCOME_FILE)
- echo "<p>written by Miller S. Puckette</p></CENTER>" >> $(WELCOME_FILE)
- echo "<FONT SIZE=\"-1\">" >> $(WELCOME_FILE)
- echo "<p>`grep -A9 ACKNOWLEDG $(PD_SRC)/README.txt`</p>" >> $(WELCOME_FILE)
- echo "</FONT>" >> $(WELCOME_FILE)
- echo "</body></html>" >> $(WELCOME_FILE)
-
darwin_app_noncvs:
test -d noncvs/doc/5.reference && \
- install -p -m0644 noncvs/doc/5.reference/*.* $(DOC_DST)/5.reference
- test -d noncvs/extra && \
- install -p -m0644 noncvs/extra/*.* $(EXTERNALS_DST)
- cp -Rp noncvs/doc/serendipd $(DOC_DST)
+ install -p noncvs/doc/5.reference/*.* $(HELP_DEST)
+ test -d noncvs/extra && install -p noncvs/extra/*.* $(OBJECTS_DEST)
+ test -d noncvs/doc/serendipd && cp -Rp noncvs/doc/serendipd $(DOCS_DEST)
darwin_app_perms:
- chmod a-x $(DOC_DST)/*/*.pd $(DOC_DST)/*/*/*.pd $(DOC_DST)/*/*/*/*.pd
- chmod -R a-w $(DOC_DST)
+ chmod a-x $(DOCS_DEST)/*/*.pd $(DOCS_DEST)/*/*/*.pd $(DOCS_DEST)/*/*/*/*.pd
+ chmod -R a-w $(DOCS_DEST)
# serendiPd shared patch
- chmod a+w $(DOC_DST)/serendipd/*shared_patch.pd
+ test -d $(DOCS_DEST)/serendipd && \
+ chmod a+w $(DOCS_DEST)/serendipd/*shared_patch.pd
dmg: darwin_app_readme darwin_app_welcome darwin_app_license darwin_app_perms
install -d "$(CWD)/$(DMG_NAME)"
- cd $(DESTDIR) && mv $(PD_APP_NAME).app "$(CWD)/$(DMG_NAME)/$(DMG_NAME).app"
+ cd $(BUILD_BASE) && mv $(PD_APP_NAME).app "$(CWD)/$(DMG_NAME)/$(DMG_NAME).app"
install -p -m0444 $(PD_SRC)/LICENSE.txt "$(CWD)/$(DMG_NAME)/PD LICENSE.txt"
install -p -m0444 $(LICENSE_FILE) $(README_FILE) \
$(WELCOME_FILE) $(LICENSE_FILE) "$(CWD)/$(DMG_NAME)"
@@ -560,35 +299,75 @@ darwin_pd_clean:
cd $(PD_SRC)/src/ && make clean
darwin_app_clean:
- -sudo rm -Rf -- $(DESTDIR) "$(DMG_NAME)"
+ -sudo rm -Rf -- $(BUILD_BASE) "$(DMG_NAME)"
-rm -f -- *~ 1 $(README_FILE) $(WELCOME_FILE) $(LICENSE_FILE) \
$(UNIX_PACKAGE_NAME).pkg "$(DMG_NAME).dmg"
-darwin_unpatch_pd:
-# this sed pattern won't work with TEST versions
- cd $(PD_SRC)/src && \
- sed -i.bak 's/\(pd_version\[\] = "Pd version [0-9.]*\)[0-9extndRC.-]*/\1/' \
- s_main.c && \
- rm -- *.bak
- cd $(PD_SRC)/src/ && patch -R -p0 < \
- ../../packages/darwin_app/patches/darwin_linking_fixes.patch
- cd $(PD_SRC)/src/ && patch -R -p0 < \
- ../../packages/darwin_app/patches/extended-help-menu.patch
- cd $(PD_SRC)/src/ && patch -R -p0 < \
- ../../packages/darwin_app/patches/display_tweaks.patch
-
darwin_app_externals_standard_clean:
cd $(EXTERNALS_SRC)/build/darwin && make clean
- cd $(EXTERNALS_SRC)/build/doc && make clean
cd $(EXTERNALS_SRC)/hcs/hid && make clean
darwin_app_externals_gem_clean:
- cd ../../Gem && pbxbuild clean
+ cd $(GEM_SRC)/Gem && xcodebuild clean
darwin_app_externals_flext_clean:
cd $(EXTERNALS_SRC)/footils/syncgrain && make -f makefile.pd-darwin clean
- cd $(EXTERNALS_SRC)/grill && \
+ -cd $(EXTERNALS_SRC)/grill && \
rm -- flext/buildsys/config-mac-pd-gcc.txt config.txt flext/config.txt \
- flext/source/libflext.a */pd-darwin/*.o */pd-darwin/*.pd_darwin \
- */pd-darwin/*/*.pd_darwin
+ flext/source/libflext.a */pd-darwin/*.o */pd-darwin/*/*.o \
+ */pd-darwin/*/*.pd_darwin */pd-darwin/*.pd_darwin \
+ */pd-darwin/release-shared/*.dylib */pd-darwin/release-shared/*.opp
+
+
+
+#==============================================================================#
+#
+## DEPRECATED TARGETS
+#
+#==============================================================================#
+
+darwin_app_externals:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(EXTERNALS_SRC) && make install"
+
+darwin_app_externals_standard:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(EXTERNALS_SRC) && make install"
+
+darwin_patch_pd:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd .. && make patch_pd"
+
+darwin_unpatch_pd:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd .. && make unpatch_pd"
+
+darwin_app_docs:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(DOC_SRC) && make install"
+
+darwin_app_license:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd .. && make license"
+
+darwin_app_welcome:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd .. && make welcome"
+
+darwin_app_readme:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd .. && make readme"
+
+darwin_prebuilt_app:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "Use make extended_app_install"
diff --git a/packages/darwin_app/TODO b/packages/darwin_app/TODO
index 20f9be12..f20961a3 100644
--- a/packages/darwin_app/TODO
+++ b/packages/darwin_app/TODO
@@ -1,23 +1,35 @@
-- review permissions so that you can build on top on existing builds
+- make Pd open a new window when its launched to workaround the bug where the
+ menus don't work until a window is opened.
-- import nqpoly4 and write helpfiles based on website:
- http://pix.test.at/pd/nqpoly/nqpoly4.html
+- otool dylib help: http://qin.laya.com/tech_coding_help/dylib_linking.html
-- add standard paths to included org.puredata.pd.plist following these
- guidelines:
-http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles/WhereToPutFiles.html
+- add symbolic link for flext
+ (cd Pd.app/Contents/Resources/extra && ln -s . lib)
- explore Pd.app/Contents/Plugins with "Get Info" installation for externals
+ (just make it a symlink to Resources/extra)
+
+- from Carmen Rocco about [fiddle~] crash: "is fiddle~: * compiled with the same header * linked with the same binary of (lib)pd * compiled with the same compiler? i had very similar issues with bonk on windows (Virtually same stacktrace but s/fiddle/bonk) until fixing the above 3 things..."
+
+- test for noncvs locations before copying to prevent show-stopping errors
+
+- investigate moving pd binary to Contents/MacOS to solve GEM window not
+ getting focus, i.e. no symlink, make it the real binary location
+
+- review permissions so that you can build on top on existing builds
-- include org.puredata.pd.plist file in the DMG
+- add standard paths to included org.puredata.pd.plist following these
+ guidelines:
+http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles/WhereToPutFiles.html
-- add "extended" version to pd/src/s_main.c:char pd_version[] = "Pd version 0.38.4\n";
+- help menu
-- create old-style Help->Pure Documentation link on Help menu. It should use a
- symlink to the "doc" dir internal to that particular Pd.app. The symlink is
- named after the complete path to the "doc" dir, like:
- /tmp/.Applications_Pd-0.38-4.app_Contents_Resources_doc
+ - check up on this bug: Opening Help patches from "Pure Documentation"
+
+ - make help menu function check if item exists before trying to make a
+ menu item so that it doesn't break pd.tk<->pd interaction (i.e. windows
+ titled x50bf90). (the recursive function might have fixed this)
- try this for the Pref Pane:
kAEShowPreferences ::tk::mac::ShowPreferences
@@ -34,22 +46,24 @@ http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles
- instead of hiding menus, grey-out/disable menu items on Pd window
- one method for creating all menus
- Pd window has method which disables menus
+ - flash menu when accelerator hits
+ - fix edit mode menu item (make it a checkbox or change to "play mode"
-- make Cmd-Delete also delete, as well as just Delete, so that my Finder key
- command habits work in Pd as well
-
-- create general optimization flag system
+- redo key mapping system
+ - make Cmd-Delete also delete, as well as just Delete, so that my
+ Finder key command habits work in Pd as well
+ - make Cmd-click work like Ctrl-click
- convert from -DMACOSX to -D__APPLE__ where ever possible (check out
__gnu_linux__) while I am at it
-
+- instead of shipping Pd.app with a org.puredata.pd.plist, make a script that
+ uses the "defaults" command to add the desired prefs to any existing
+ file. (its a good idea, but unforunately, the key names prevent that from
+ working, i.e. loadlib1, loadlib2, etc)
------------------------------------------------------------------------------
semi-abandoned TODOs
-
-- make Help menu generator recursive
-
- make a web page that has stuff that can't be included due to license issues:
(percolate)
diff --git a/packages/darwin_app/patches/MACOSX-to-__APPLE__.patch b/packages/darwin_app/patches/MACOSX-to-__APPLE__.patch
deleted file mode 100644
index c8347c06..00000000
--- a/packages/darwin_app/patches/MACOSX-to-__APPLE__.patch
+++ /dev/null
@@ -1,357 +0,0 @@
-Index: configure.in
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/configure.in,v
-retrieving revision 1.10
-diff -u -w -r1.10 configure.in
---- configure.in 30 May 2005 04:37:25 -0000 1.10
-+++ configure.in 9 Jun 2005 06:01:51 -0000
-@@ -218,7 +218,7 @@
- -framework AudioUnit -framework AudioToolbox \
- -framework Carbon -framework CoreMIDI"
- EXT=pd_darwin
-- MORECFLAGS="-DMACOSX -DUNISTD -I/usr/X11R6/include \
-+ MORECFLAGS="-DUNISTD -I/usr/X11R6/include \
- -I../portaudio/pa_common -I../portaudio/pablio \
- -I../portmidi/pm_common -I../portmidi/pm_mac \
- -I../portmidi/porttime \
-Index: d_array.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/d_array.c,v
-retrieving revision 1.5
-diff -u -w -r1.5 d_array.c
---- d_array.c 11 Nov 2004 04:58:21 -0000 1.5
-+++ d_array.c 9 Jun 2005 06:01:51 -0000
-@@ -540,12 +540,12 @@
- #define int32 int32_t
-
- #else
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define HIOFFSET 0 /* word offset to find MSB */
- #define LOWOFFSET 1 /* word offset to find LSB */
- #define int32 int /* a data type that has 32 bits */
-
--#endif /* MACOSX */
-+#endif /* __APPLE__ */
- #endif /* __linux__ */
- #endif /* MSW */
- #endif /* SGI */
-Index: d_osc.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/d_osc.c,v
-retrieving revision 1.2
-diff -u -w -r1.2 d_osc.c
---- d_osc.c 6 Sep 2004 20:20:33 -0000 1.2
-+++ d_osc.c 9 Jun 2005 06:01:51 -0000
-@@ -56,12 +56,12 @@
- #define int32 int32_t
-
- #else
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define HIOFFSET 0 /* word offset to find MSB */
- #define LOWOFFSET 1 /* word offset to find LSB */
- #define int32 int /* a data type that has 32 bits */
-
--#endif /* MACOSX */
-+#endif /* __APPLE__ */
- #endif /* __linux__ */
- #endif /* MSW */
- #endif /* SGI */
-Index: g_canvas.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
-retrieving revision 1.7
-diff -u -w -r1.7 g_canvas.c
---- g_canvas.c 18 May 2005 04:28:50 -0000 1.7
-+++ g_canvas.c 9 Jun 2005 06:01:51 -0000
-@@ -25,7 +25,7 @@
- #define GLIST_DEFCANVASWIDTH 450
- #define GLIST_DEFCANVASHEIGHT 300
-
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define GLIST_DEFCANVASYLOC 22
- #else
- #define GLIST_DEFCANVASYLOC 0
-Index: g_editor.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
-retrieving revision 1.7
-diff -u -w -r1.7 g_editor.c
---- g_editor.c 18 May 2005 04:28:50 -0000 1.7
-+++ g_editor.c 9 Jun 2005 06:01:52 -0000
-@@ -949,7 +949,7 @@
-
- /* on one-button-mouse machines, you can use double click to
- mean right click (which gets the popup menu.) Do this for Mac. */
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define SIMULATERIGHTCLICK
- #endif
-
-@@ -1412,7 +1412,7 @@
- keyupsym = gensym("#keyup");
- keynamesym = gensym("#keyname");
- }
--#ifdef MACOSX
-+#ifdef __APPLE__
- if (keynum == 30)
- keynum = 0, gotkeysym = gensym("Up");
- else if (keynum == 31)
-Index: g_text.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
-retrieving revision 1.7
-diff -u -w -r1.7 g_text.c
---- g_text.c 18 May 2005 04:28:51 -0000 1.7
-+++ g_text.c 9 Jun 2005 06:01:52 -0000
-@@ -1100,7 +1100,7 @@
-
- /* -------------------- the "text" class ------------ */
-
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define EXTRAPIX 2
- #else
- #define EXTRAPIX 1
-Index: s_file.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_file.c,v
-retrieving revision 1.5
-diff -u -w -r1.5 s_file.c
---- s_file.c 30 May 2005 03:04:18 -0000 1.5
-+++ s_file.c 9 Jun 2005 06:01:52 -0000
-@@ -205,7 +205,7 @@
-
- #endif /* MSW */
-
--#ifdef MACOSX
-+#ifdef __APPLE__
-
- static void sys_initloadpreferences( void)
- {
-@@ -255,7 +255,7 @@
- {
- }
-
--#endif /* MACOSX */
-+#endif /* __APPLE__ */
-
- void sys_loadpreferences( void)
- {
-Index: s_inter.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
-retrieving revision 1.9
-diff -u -w -r1.9 s_inter.c
---- s_inter.c 30 May 2005 03:04:18 -0000 1.9
-+++ s_inter.c 9 Jun 2005 06:01:53 -0000
-@@ -40,7 +40,7 @@
- #include <string.h>
- #include <stdio.h>
-
--#ifdef MACOSX
-+#ifdef __APPLE__
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <pthread.h>
-@@ -1007,7 +1007,7 @@
- else if (!childpid) /* we're the child */
- {
- seteuid(getuid()); /* lose setuid priveliges */
--#ifndef MACOSX
-+#ifndef __APPLE__
- /* the wish process in Unix will make a wish shell and
- read/write standard in and out unless we close the
- file descriptors. Somehow this doesn't make the MAC OSX
-@@ -1026,7 +1026,7 @@
- #endif
- if (!sys_guicmd)
- {
--#ifdef MACOSX
-+#ifdef __APPLE__
- char *homedir = getenv("HOME"), filename[250];
- struct stat statbuf;
- if (!homedir || strlen(homedir) > 150)
-@@ -1165,7 +1165,7 @@
- if (!SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS))
- fprintf(stderr, "pd: couldn't set high priority class\n");
- #endif
--#ifdef MACOSX
-+#ifdef __APPLE__
- if (sys_hipriority)
- {
- struct sched_param param;
-@@ -1177,7 +1177,7 @@
- if (err)
- post("warning: high priority scheduling failed\n");
- }
--#endif /* MACOSX */
-+#endif /* __APPLE__ */
-
- if (!sys_nogui && !sys_guisetportnumber)
- {
-Index: s_loader.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
-retrieving revision 1.6
-diff -u -w -r1.6 s_loader.c
---- s_loader.c 30 May 2005 03:04:19 -0000 1.6
-+++ s_loader.c 9 Jun 2005 06:01:53 -0000
-@@ -13,7 +13,7 @@
- #include <io.h>
- #include <windows.h>
- #endif
--#ifdef MACOSX
-+#ifdef __APPLE__
- #include <mach-o/dyld.h>
- #endif
- #include <string.h>
-@@ -37,7 +37,7 @@
- #ifdef __linux__
- ".pd_linux";
- #endif
--#ifdef MACOSX
-+#ifdef __APPLE__
- ".pd_darwin";
- #endif
- #ifdef MSW
-@@ -90,7 +90,7 @@
- if (lastdot = strrchr(nameptr, '.'))
- *lastdot = 0;
-
--#ifdef MACOSX
-+#ifdef __APPLE__
- strcpy(symname, "_");
- strcat(symname, nameptr);
- #else
-@@ -122,7 +122,7 @@
- }
- makeout = (t_xxx)GetProcAddress(ntdll, symname);
- #endif
--#ifdef MACOSX
-+#ifdef __APPLE__
- {
- NSObjectFileImage image;
- void *ret;
-Index: s_path.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_path.c,v
-retrieving revision 1.6
-diff -u -w -r1.6 s_path.c
---- s_path.c 18 May 2005 04:28:51 -0000 1.6
-+++ s_path.c 9 Jun 2005 06:01:53 -0000
-@@ -356,7 +356,7 @@
- }
-
-
--/* Startup file reading for linux and MACOSX. As of 0.38 this will be
-+/* Startup file reading for linux and Mac OS X. As of 0.38 this will be
- deprecated in favor of the "settings" mechanism */
-
- int sys_argparse(int argc, char **argv);
-Index: s_stuff.h
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
-retrieving revision 1.6
-diff -u -w -r1.6 s_stuff.h
---- s_stuff.h 28 Nov 2004 21:20:43 -0000 1.6
-+++ s_stuff.h 9 Jun 2005 06:01:53 -0000
-@@ -160,7 +160,7 @@
- #define API_DEFAULT API_MMIO
- #define API_DEFSTRING "MMIO"
- #endif
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define API_DEFAULT API_PORTAUDIO
- #define API_DEFSTRING "portaudio"
- #endif
-Index: t_main.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/t_main.c,v
-retrieving revision 1.2
-diff -u -w -r1.2 t_main.c
---- t_main.c 6 Sep 2004 20:20:36 -0000 1.2
-+++ t_main.c 9 Jun 2005 06:01:53 -0000
-@@ -14,7 +14,7 @@
- */
-
-
--#ifndef MACOSX /* linux and IRIX only; in MACOSX we don't link this in */
-+#ifndef __APPLE__ /* linux and IRIX only; in Mac OS X we don't link this in */
- #include "tk.h"
- #include <stdlib.h>
-
-@@ -112,4 +112,4 @@
- return TCL_OK;
- }
-
--#endif /* MACOSX */
-+#endif /* __APPLE__ */
-Index: t_tkcmd.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/t_tkcmd.c,v
-retrieving revision 1.3
-diff -u -w -r1.3 t_tkcmd.c
---- t_tkcmd.c 6 Nov 2004 16:07:34 -0000 1.3
-+++ t_tkcmd.c 9 Jun 2005 06:01:53 -0000
-@@ -40,7 +40,7 @@
- #include "tk.h"
- #endif
-
--#ifdef MACOSX
-+#ifdef __APPLE__
- #define STARTGUI
- #endif
-
-@@ -528,7 +528,7 @@
- /* in linux, we load the tk code from here (in MSW and MACOS, this
- is done by passing the name of the file as a startup argument to
- the wish shell.) */
--#if !defined(MSW) && !defined(MACOSX)
-+#if !defined(MSW) && !defined(__APPLE__)
- void pdgui_doevalfile(Tcl_Interp *interp, char *s)
- {
- char buf[GUISTRING];
-@@ -566,7 +566,7 @@
- #endif
- pdgui_setupsocket();
- /* read in the startup file */
--#if !defined(MSW) && !defined(MACOSX)
-+#if !defined(MSW) && !defined(__APPLE__)
- pdgui_evalfile("pd.tk");
- #endif
- }
-Index: x_arithmetic.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/x_arithmetic.c,v
-retrieving revision 1.2
-diff -u -w -r1.2 x_arithmetic.c
---- x_arithmetic.c 6 Sep 2004 20:20:36 -0000 1.2
-+++ x_arithmetic.c 9 Jun 2005 06:01:53 -0000
-@@ -11,7 +11,7 @@
-
-
- /* MSW and OSX don't appear to have single-precision ANSI math */
--#if defined(MSW) || defined(MACOSX)
-+#if defined(MSW) || defined(__APPLE__)
- #define sinf sin
- #define cosf cos
- #define atanf atan
-Index: x_misc.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/x_misc.c,v
-retrieving revision 1.2
-diff -u -w -r1.2 x_misc.c
---- x_misc.c 6 Sep 2004 20:20:36 -0000 1.2
-+++ x_misc.c 9 Jun 2005 06:01:53 -0000
-@@ -21,7 +21,7 @@
- #include <time.h>
- #endif
-
--#if defined (MACOSX) || defined (__FreeBSD__)
-+#if defined (__APPLE__) || defined (__FreeBSD__)
- #define HZ CLK_TCK
- #endif
-
diff --git a/packages/darwin_app/patches/special_chars_hack.patch b/packages/darwin_app/patches/special_chars_hack.patch
deleted file mode 100644
index 63effe65..00000000
--- a/packages/darwin_app/patches/special_chars_hack.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Index: s_loader.c
-===================================================================
-RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
-retrieving revision 1.6
-diff -u -w -r1.6 s_loader.c
---- s_loader.c 30 May 2005 03:04:19 -0000 1.6
-+++ s_loader.c 15 Nov 2005 22:28:41 -0000
-@@ -49,7 +49,7 @@
- int sys_load_lib(char *dirname, char *classname)
- {
- char symname[MAXPDSTRING], filename[MAXPDSTRING], dirbuf[MAXPDSTRING],
-- classname2[MAXPDSTRING], *nameptr, *lastdot;
-+ classname2[MAXPDSTRING], *nameptr, *lastdot, tmptildestr[MAXPDSTRING];
- void *dlobj;
- t_xxx makeout = NULL;
- int fd;
-@@ -96,9 +96,40 @@
- #else
- strcpy(symname, nameptr);
- #endif
-+ /*
-+ * this is a quick hack to get the matrix externals working as single
-+ * files. This should be done with hex translation of special characters
-+ * <hans@at.or.at>
-+ */
- /* if the last character is a tilde, replace with "_tilde" */
- if (symname[strlen(symname) - 1] == '~')
-- strcpy(symname + (strlen(symname) - 1), "_tilde");
-+ {
-+ strcpy(symname + (strlen(symname) - 1), "");
-+ strcpy(tmptildestr, "_tilde");
-+ }
-+ else
-+ {
-+ strcpy(tmptildestr, "");
-+ }
-+ switch (symname[strlen(symname) - 1])
-+ {
-+ case '.':
-+ strcpy(symname + (strlen(symname) - 1), "_dot");
-+ break;
-+ case '+':
-+ strcpy(symname + (strlen(symname) - 1), "_plus");
-+ break;
-+ case '-':
-+ strcpy(symname + (strlen(symname) - 1), "_hyphen");
-+ break;
-+ case '*':
-+ strcpy(symname + (strlen(symname) - 1), "_asterisk");
-+ break;
-+ case '^':
-+ strcpy(symname + (strlen(symname) - 1), "_caret");
-+ break;
-+ }
-+ strcat(symname, tmptildestr);
- /* and append _setup to form the C setup function name */
- strcat(symname, "_setup");
- #ifdef DL_OPEN
diff --git a/packages/patches/build_vars_4_makefile.in.patch b/packages/patches/build_vars_4_makefile.in.patch
new file mode 100644
index 00000000..d398ae4e
--- /dev/null
+++ b/packages/patches/build_vars_4_makefile.in.patch
@@ -0,0 +1,98 @@
+Index: makefile.in
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/makefile.in,v
+retrieving revision 1.5
+diff -u -w -r1.5 makefile.in
+--- makefile.in 6 Nov 2004 16:07:33 -0000 1.5
++++ makefile.in 21 Nov 2005 04:32:51 -0000
+@@ -113,29 +113,48 @@
+ cd ../extra/pique;make @EXTERNTARGET@
+
+ INSTDIR = $(DESTDIR)/$(INSTALL_PREFIX)
+-MANINSTDIR = $(DESTDIR)/$(INSTALL_PREFIX)/$(MANDIR)
+ BINARYMODE=@binarymode@
+
++# varibles to match packages/Makefile.buildlayout so that they can be easily
++# overridden when building extended builds. <hans@at.or.at>
++BIN_DEST = $(INSTDIR)/bin
++DOCS_DEST = $(INSTDIR)/doc
++INCLUDE_DEST = $(INSTDIR)/include
++LIBPD_DEST = $(INSTDIR)/lib/pd
++LIBBIN_DEST = $(LIBPD_DEST)/bin
++MAN_DEST = $(INSTDIR)/$(MANDIR)
++
+ install: all
+- install -d $(INSTDIR)/lib/pd/bin
+- install $(BIN_DIR)/$(GUINAME) $(INSTDIR)/lib/pd/bin/$(GUINAME)
+- install $(BIN_DIR)/pd-watchdog $(INSTDIR)/lib/pd/bin/pd-watchdog
+- install -m644 $(BIN_DIR)/pd.tk $(INSTDIR)/lib/pd/bin/pd.tk
+- install -d $(INSTDIR)/bin
+- install $(BINARYMODE) $(PDEXEC) $(INSTDIR)/bin/pd
+- install -m755 $(BIN_DIR)/pdsend $(INSTDIR)/bin/pdsend
+- install -m755 $(BIN_DIR)/pdreceive $(INSTDIR)/bin/pdreceive
+- cp -pr ../doc ../extra $(INSTDIR)/lib/pd/
++ install -d $(LIBBIN_DEST)
++ install $(BIN_DIR)/$(GUINAME) $(LIBBIN_DEST)/$(GUINAME)
++ install $(BIN_DIR)/pd-watchdog $(LIBBIN_DEST)/pd-watchdog
++ install -m644 $(BIN_DIR)/pd.tk $(LIBBIN_DEST)/pd.tk
++ install -d $(BIN_DEST)
++ install $(BINARYMODE) $(PDEXEC) $(BIN_DEST)/pd
++ install -m755 $(BIN_DIR)/pdsend $(BIN_DEST)/pdsend
++ install -m755 $(BIN_DIR)/pdreceive $(BIN_DEST)/pdreceive
++ for dir in $(shell ls -1 ../doc | grep -v CVS); do \
++ echo "installing $$dir"; \
++ install -d $(DOCS_DEST)/$$dir ; \
++ install -p ../doc/$$dir/*.* $(DOCS_DEST)/$$dir ; \
++ done
++ for dir in $(shell ls -1 ../doc/7.stuff | grep -v CVS); do \
++ echo "installing 7.stuff/$$dir"; \
++ install -d $(DOCS_DEST)/7.stuff/$$dir ; \
++ install -p ../doc/7.stuff/$$dir/*.* $(DOCS_DEST)/7.stuff/$$dir ; \
++ done
++ cp -pr ../extra $(LIBPD_DEST)/
+ rm -f $(INSTDIR)/extra/*/*.o
+- install -d $(INSTDIR)/include
+- install -m644 m_pd.h $(INSTDIR)/include/m_pd.h
+- install -d $(MANINSTDIR)/man1
+- gzip < ../man/pd.1 > $(MANINSTDIR)/man1/pd.1.gz
+- chmod 644 $(MANINSTDIR)/man1/pd.1.gz
+- gzip < ../man/pdsend.1 > $(MANINSTDIR)/man1/pdsend.1.gz
+- chmod 644 $(MANINSTDIR)/man1/pdsend.1.gz
+- gzip < ../man/pdreceive.1 > $(MANINSTDIR)/man1/pdreceive.1.gz
+- chmod 644 $(MANINSTDIR)/man1/pdreceive.1.gz
++ install -d $(INCLUDE_DEST)
++ install -m644 m_pd.h $(INCLUDE_DEST)/m_pd.h
++ install -d $(MAN_DEST)/man1
++ gzip < ../man/pd.1 > $(MAN_DEST)/man1/pd.1.gz
++ chmod 644 $(MAN_DEST)/man1/pd.1.gz
++ gzip < ../man/pdsend.1 > $(MAN_DEST)/man1/pdsend.1.gz
++ chmod 644 $(MAN_DEST)/man1/pdsend.1.gz
++ gzip < ../man/pdreceive.1 > $(MAN_DEST)/man1/pdreceive.1.gz
++ chmod 644 $(MAN_DEST)/man1/pdreceive.1.gz
++ @echo "Pd install succeeded."
+
+ local-clean:
+ -rm -f ../obj/* $(BIN_DIR)/pd $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
+@@ -166,14 +185,14 @@
+ $(CC) $(INCLUDE) $(CFLAGS) -M $(SRC) > makefile.dependencies
+
+ uninstall:
+- rm -f -r $(INSTDIR)/lib/pd
+- rm -f $(INSTDIR)/bin/pd
+- rm -f $(INSTDIR)/bin/pdsend
+- rm -f $(INSTDIR)/bin/pdreceive
+- rm -f $(INSTDIR)/include/m_pd.h
+- rm -f $(MANINSTDIR)/man1/pd.1.gz
+- rm -f $(MANINSTDIR)/man1/pdsend.1.gz
+- rm -f $(MANINSTDIR)/man1/pdreceive.1.gz
++ rm -f -r $(LIBPD_DEST)
++ rm -f $(BIN_DEST)/pd
++ rm -f $(BIN_DEST)/pdsend
++ rm -f $(BIN_DEST)/pdreceive
++ rm -f $(INCLUDE_DEST)/m_pd.h
++ rm -f $(MAN_DEST)/man1/pd.1.gz
++ rm -f $(MAN_DEST)/man1/pdsend.1.gz
++ rm -f $(MAN_DEST)/man1/pdreceive.1.gz
+
+ include makefile.dependencies
+
diff --git a/packages/darwin_app/patches/display_tweaks.patch b/packages/patches/darwin/darwin_display_tweaks.patch
index 59771854..59771854 100644
--- a/packages/darwin_app/patches/display_tweaks.patch
+++ b/packages/patches/darwin/darwin_display_tweaks.patch
diff --git a/packages/darwin_app/patches/weak_linking.patch b/packages/patches/darwin/darwin_jack_weak_linking.patch
index fa0f6601..fa0f6601 100644
--- a/packages/darwin_app/patches/weak_linking.patch
+++ b/packages/patches/darwin/darwin_jack_weak_linking.patch
diff --git a/packages/darwin_app/patches/darwin_linking_fixes.patch b/packages/patches/darwin/darwin_linking_fixes.patch
index dd1c2db3..dd1c2db3 100644
--- a/packages/darwin_app/patches/darwin_linking_fixes.patch
+++ b/packages/patches/darwin/darwin_linking_fixes.patch
diff --git a/packages/darwin_app/patches/extended-help-menu.patch b/packages/patches/extended-help-menu.patch
index 00809abb..0cabfeaa 100644
--- a/packages/darwin_app/patches/extended-help-menu.patch
+++ b/packages/patches/extended-help-menu.patch
@@ -103,7 +103,7 @@ RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
+ # }
+ if { $file_type == "file" } {
+ # only put certain file types on the menu
-+ if {[regexp ".*\.(htm|html|c|pd|txt|pdf|wav|aif|aiff)$" $file]} {
++ if {[regexp ".*\.(htm|html|c|pd|txt|tk|pdf|wav|aif|aiff)$" $file]} {
+ $helpmenu add command -label $file_name \
+ -command "menu_doc_open doc/$base_dir/$sub_dir $file_name"
+ }
diff --git a/packages/patches/libdir-0.38-4.patch b/packages/patches/libdir-0.38-4.patch
index c2148c11..3ac2a790 100644
--- a/packages/patches/libdir-0.38-4.patch
+++ b/packages/patches/libdir-0.38-4.patch
@@ -1,10 +1,11 @@
+? configure
Index: s_loader.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
retrieving revision 1.4
diff -u -w -r1.4 s_loader.c
--- s_loader.c 6 Sep 2004 20:20:35 -0000 1.4
-+++ s_loader.c 20 Nov 2005 01:52:20 -0000
++++ s_loader.c 20 Nov 2005 03:47:04 -0000
@@ -163,3 +163,82 @@
@@ -94,7 +95,7 @@ RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.9.2.5
diff -u -w -r1.9.2.5 s_main.c
--- s_main.c 24 Feb 2005 01:37:20 -0000 1.9.2.5
-+++ s_main.c 20 Nov 2005 01:52:20 -0000
++++ s_main.c 20 Nov 2005 03:47:04 -0000
@@ -233,6 +233,7 @@
/* load dynamic libraries specified with "-lib" args */
for (nl = sys_externlist; nl; nl = nl->nl_next)
@@ -109,12 +110,13 @@ RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
retrieving revision 1.5
diff -u -w -r1.5 s_stuff.h
--- s_stuff.h 6 Sep 2004 20:20:36 -0000 1.5
-+++ s_stuff.h 20 Nov 2005 01:52:20 -0000
-@@ -47,6 +47,7 @@
-
++++ s_stuff.h 20 Nov 2005 03:47:04 -0000
+@@ -48,6 +48,8 @@
/* s_loader.c */
int sys_load_lib(char *dirname, char *filename);
-+int sys_load_lib_dir(char *dirname, char *filename);
++int sys_load_lib_dir(char *dirname, char *filename);
++
/* s_audio.c */
+ #define SENDDACS_NO 0 /* return values for sys_send_dacs() */
diff --git a/packages/patches/loaderHEX-0.39-1.patch b/packages/patches/loaderHEX-0.39-1.patch
new file mode 100644
index 00000000..d3656662
--- /dev/null
+++ b/packages/patches/loaderHEX-0.39-1.patch
@@ -0,0 +1,208 @@
+Index: m_class.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/m_class.c,v
+retrieving revision 1.4
+diff -u -w -r1.4 m_class.c
+--- m_class.c 28 Nov 2004 21:20:42 -0000 1.4
++++ m_class.c 17 Nov 2005 23:33:06 -0000
+@@ -16,6 +16,7 @@
+
+ #include <stdarg.h>
+ #include <string.h>
++#include <stdio.h>
+
+ static t_symbol *class_loadsym; /* name under which an extern is invoked */
+ static void pd_defaultfloat(t_pd *x, t_float f);
+@@ -513,6 +514,42 @@
+ t_symbol* pathsearch(t_symbol *s,char* ext);
+ int pd_setloadingabstraction(t_symbol *sym);
+
++
++/* replace everything but [a-zA-Z0-9_] by "0x%x" */
++static char*alternative_classname(char*classname)
++{
++ char *altname=(char*)getbytes(sizeof(char)*MAXPDSTRING);
++ int count=0;
++ int i=0;
++ for(i=0; i<MAXPDSTRING; i++)
++ altname[i]=0;
++ i=0;
++ while(*classname)
++ {
++ char c=*classname;
++ if((c>=48 && c<=57)|| /* [0-9] */
++ (c>=65 && c<=90)|| /* [A-Z] */
++ (c>=97 && c<=122)||/* [a-z] */
++ (c==95)) /* [_] */
++ {
++ altname[i]=c;
++ i++;
++ }
++ else /* a "bad" character */
++ {
++ sprintf(altname+i, "0x%02x", c);
++ i+=4;
++ count++;
++ }
++ classname++;
++ }
++ if(count>0)return altname;
++ /* seems like the given classname is fine as can be */
++ freebytes(altname, sizeof(char)*MAXPDSTRING);
++ return 0;
++}
++
++
+ /* this routine is called when a new "object" is requested whose class Pd
+ doesn't know. Pd tries to load it as an extern, then as an abstraction. */
+ void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv)
+@@ -521,10 +558,11 @@
+ t_symbol *dir = canvas_getcurrentdir();
+ int fd;
+ char dirbuf[MAXPDSTRING], *nameptr;
++ char *altname=alternative_classname(s->s_name);
+ if (tryingalready) return;
+ newest = 0;
+ class_loadsym = s;
+- if (sys_load_lib(dir->s_name, s->s_name))
++ if (sys_load_lib_alt(dir->s_name, s->s_name,altname))
+ {
+ tryingalready = 1;
+ typedmess(dummy, s, argc, argv);
+@@ -535,6 +573,8 @@
+ current = s__X.s_thing;
+ if ((fd = open_via_path(dir->s_name, s->s_name, ".pd",
+ dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 ||
++ (altname && (fd = open_via_path(dir->s_name, altname, ".pd",
++ dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0) ||
+ (fd = open_via_path(dir->s_name, s->s_name, ".pat",
+ dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0)
+ {
+Index: s_loader.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
+retrieving revision 1.6
+diff -u -w -r1.6 s_loader.c
+--- s_loader.c 30 May 2005 03:04:19 -0000 1.6
++++ s_loader.c 17 Nov 2005 23:33:07 -0000
+@@ -46,10 +46,11 @@
+
+ void class_set_extern_dir(t_symbol *s);
+
+-int sys_load_lib(char *dirname, char *classname)
++int sys_load_lib_alt(char *dirname, char *classname, char*altname)
+ {
+ char symname[MAXPDSTRING], filename[MAXPDSTRING], dirbuf[MAXPDSTRING],
+- classname2[MAXPDSTRING], *nameptr, *lastdot;
++ classname2[MAXPDSTRING], *nameptr, *lastdot,
++ altsymname[MAXPDSTRING];
+ void *dlobj;
+ t_xxx makeout = NULL;
+ int fd;
+@@ -72,6 +73,25 @@
+ if ((fd = open_via_path(dirname, classname2, sys_dllextent,
+ dirbuf, &nameptr, MAXPDSTRING, 1)) < 0)
+ {
++ /* next try (alternative_classname).(sys_dllextent) */
++ if(altname)
++ {
++ if ((fd = open_via_path(dirname, altname, sys_dllextent,
++ dirbuf, &nameptr, MAXPDSTRING, 1)) < 0)
++
++ /* next try (alternative_classname)/(alternative_classname).(sys_dllextent) ... */
++ strncpy(classname2, altname, MAXPDSTRING);
++ filename[MAXPDSTRING-2] = 0;
++ strcat(classname2, "/");
++ strncat(classname2, altname, MAXPDSTRING-strlen(classname2));
++ filename[MAXPDSTRING-1] = 0;
++ if ((fd = open_via_path(dirname, classname2, sys_dllextent,
++ dirbuf, &nameptr, MAXPDSTRING, 1)) < 0)
++ {
++ return 0;
++ }
++ }
++ else
+ return (0);
+ }
+ }
+@@ -93,9 +113,20 @@
+ #ifdef MACOSX
+ strcpy(symname, "_");
+ strcat(symname, nameptr);
++ if(altname)
++ {
++ strcpy(altsymname, "_setup_");
++ strcat(symname, altname);
++ }
+ #else
+ strcpy(symname, nameptr);
++ if(altname)
++ {
++ strcpy(altsymname, "setup_");
++ strcat(altsymname, altname);
++ }
+ #endif
++
+ /* if the last character is a tilde, replace with "_tilde" */
+ if (symname[strlen(symname) - 1] == '~')
+ strcpy(symname + (strlen(symname) - 1), "_tilde");
+@@ -110,6 +141,7 @@
+ return (0);
+ }
+ makeout = (t_xxx)dlsym(dlobj, symname);
++ if(!makeout)makeout = (t_xxx)dlsym(dlobj, altsymname);
+ #endif
+ #ifdef MSW
+ sys_bashfilename(filename, filename);
+@@ -121,6 +153,7 @@
+ return (0);
+ }
+ makeout = (t_xxx)GetProcAddress(ntdll, symname);
++ if(!makeout)makeout = (t_xxx)GetProcAddress(ntdll, altsymname);
+ #endif
+ #ifdef MACOSX
+ {
+@@ -147,6 +180,8 @@
+ }
+ s = NSLookupSymbolInModule(ret, symname);
+
++ if(!s)s=NSLookupSymbolInModule(ret, altsymname);
++
+ if (s)
+ makeout = (t_xxx)NSAddressOfSymbol( s);
+ else makeout = 0;
+@@ -156,6 +191,8 @@
+ if (!makeout)
+ {
+ post("load_object: Symbol \"%s\" not found", symname);
++ if(altname)
++ post("load_object: Symbol \"%s\" not found", altsymname);
+ class_set_extern_dir(&s_);
+ return 0;
+ }
+@@ -164,6 +201,10 @@
+ return (1);
+ }
+
++int sys_load_lib(char *dirname, char *filename)
++{
++ return sys_load_lib_alt(dirname, filename, 0);
++}
+
+
+
+Index: s_stuff.h
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
+retrieving revision 1.7
+diff -u -w -r1.7 s_stuff.h
+--- s_stuff.h 16 Jul 2005 01:43:18 -0000 1.7
++++ s_stuff.h 17 Nov 2005 23:33:07 -0000
+@@ -47,6 +47,7 @@
+
+ /* s_loader.c */
+ int sys_load_lib(char *dirname, char *filename);
++int sys_load_lib_alt(char *dirname, char *filename, char* altname);
+
+ /* s_audio.c */
+
diff --git a/packages/patches/win/NT2_MSC_VER.patch b/packages/patches/win/NT2_MSC_VER.patch
new file mode 100644
index 00000000..7c5f3d25
--- /dev/null
+++ b/packages/patches/win/NT2_MSC_VER.patch
@@ -0,0 +1,59 @@
+? configure
+Index: d_mayer_fft.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/d_mayer_fft.c,v
+retrieving revision 1.3
+diff -u -w -r1.3 d_mayer_fft.c
+--- d_mayer_fft.c 18 May 2005 04:28:50 -0000 1.3
++++ d_mayer_fft.c 17 Nov 2005 23:29:25 -0000
+@@ -48,7 +48,8 @@
+ * of work. -msp
+ */
+
+-#ifdef MSW
++/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans@at.or.at> */
++#ifdef _MSC_VER
+ #pragma warning( disable : 4305 ) /* uncast const double to float */
+ #pragma warning( disable : 4244 ) /* uncast double to float */
+ #pragma warning( disable : 4101 ) /* unused local variables */
+Index: m_pd.h
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
+retrieving revision 1.8
+diff -u -w -r1.8 m_pd.h
+--- m_pd.h 19 Aug 2005 23:28:03 -0000 1.8
++++ m_pd.h 17 Nov 2005 23:29:25 -0000
+@@ -17,12 +17,13 @@
+ #define MSW
+ #endif
+
+-#ifdef MSW
++/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans@at.or.at> */
++#ifdef _MSC_VER
+ /* #pragma warning( disable : 4091 ) */
+ #pragma warning( disable : 4305 ) /* uncast const double to float */
+ #pragma warning( disable : 4244 ) /* uncast float/int conversion etc. */
+ #pragma warning( disable : 4101 ) /* unused automatic variables */
+-#endif /* MSW */
++#endif /* _MSC_VER */
+
+ /* the external storage class is "extern" in UNIX; in MSW it's ugly. */
+ #ifdef MSW
+Index: t_tkcmd.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/t_tkcmd.c,v
+retrieving revision 1.6
+diff -u -w -r1.6 t_tkcmd.c
+--- t_tkcmd.c 15 Oct 2005 23:14:28 -0000 1.6
++++ t_tkcmd.c 17 Nov 2005 23:29:25 -0000
+@@ -30,7 +30,9 @@
+ #include <winsock.h>
+ #include <io.h>
+ #endif
+-#ifdef MSW
++
++/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans@at.or.at> */
++#ifdef _MSC_VER
+ #pragma warning( disable : 4305 ) /* uncast const double to float */
+ #pragma warning( disable : 4244 ) /* uncast double to float */
+ #pragma warning( disable : 4101 ) /* unused local variables */
diff --git a/packages/win32_inno/TODO b/packages/win32_inno/TODO
index b152c85d..5557f83a 100644
--- a/packages/win32_inno/TODO
+++ b/packages/win32_inno/TODO
@@ -3,4 +3,4 @@
- get Windows Makefiles for cyclone, toxy, zexy, Gem, unauthorized
-
+- change license file to GPL