aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-26 01:52:47 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-26 01:52:47 +0000
commit6c271c12023d3aff3e5043a456b156b68042738d (patch)
tree270582907b167f8075ecac3fdb231dbc01f4b8f4
parent59bc5841c63961260c70979877df3fc781f8cf30 (diff)
added in Jamie's dlopn patch so I can use his binaries; fixed a number of bugs reported on the list; added platform-specific noncvs handling
svn path=/trunk/; revision=4035
-rw-r--r--abstractions/Makefile17
-rwxr-xr-xabstractions/Makefile.buildlayout8
-rw-r--r--doc/Makefile27
-rw-r--r--doc/Makefile.buildlayout8
-rw-r--r--doc/TODO2
-rw-r--r--externals/Makefile927
-rw-r--r--externals/Makefile.buildlayout8
-rw-r--r--externals/build/TODO5
-rw-r--r--packages/Makefile58
-rw-r--r--packages/Makefile.buildlayout4
-rw-r--r--packages/TODO26
-rw-r--r--packages/darwin_app/Info.plist.in5
-rw-r--r--packages/darwin_app/Makefile56
-rw-r--r--packages/darwin_app/TODO9
-rw-r--r--packages/patches/darwin/darwin_dlopen.patch65
-rw-r--r--packages/patches/extended-help-menu.patch298
-rw-r--r--packages/win32_inno/TODO2
17 files changed, 903 insertions, 622 deletions
diff --git a/abstractions/Makefile b/abstractions/Makefile
index 3c5e2cc5..a71fff6c 100644
--- a/abstractions/Makefile
+++ b/abstractions/Makefile
@@ -90,6 +90,7 @@ objects_la-kitchen:
install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/La-kitchen/*.pd | \
grep -v '\-help.pd') $(OBJECTS_DEST)/$(LA-KITCHEN_NAME)
$(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(LA-KITCHEN_NAME) \
+ --author "Charles Verron" \
--description "a collection of objects working with sensors"
install -d $(HELP_DEST)/$(LA-KITCHEN_NAME)
install -p $(ABSTRACTIONS_SRC)/La-kitchen/*-help.pd \
@@ -204,6 +205,22 @@ objects_pddp:
RRADICAL_NAME = rradical
objects_rradical:
install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(RRADICAL_NAME) \
+ --author "Frank Barknecht" \
+ --license "GNU GPL"
+ install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)/control
+ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/control/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(RRADICAL_NAME)/control
+ install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)/effects
+ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/effects/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(RRADICAL_NAME)/effects
+ install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)/instruments
+ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/instruments/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(RRADICAL_NAME)/instruments
+ install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)/stuff
+ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/stuff/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(RRADICAL_NAME)/stuff
+
applications_rradical:
install -d $(APPLICATIONS_DEST)/$(RRADICAL_NAME)
diff --git a/abstractions/Makefile.buildlayout b/abstractions/Makefile.buildlayout
index 921a7959..12df9df5 100755
--- a/abstractions/Makefile.buildlayout
+++ b/abstractions/Makefile.buildlayout
@@ -19,12 +19,12 @@
#
# This file is currently located in these places:
# abstractions
-# externals/build
+# extensions
+# externals
# packages
# doc
#
# it will be going here too:
-# extensions
# gem
# pd
#
@@ -65,10 +65,10 @@ endif
# sources
ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTENSIONS_SRC = $(SRC_ROOT_DIR)/extensions
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
@@ -130,7 +130,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
# release version for this distro
-PACKAGE_VERSION = extended-RC4
+PACKAGE_VERSION = extended-RC5
PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
diff --git a/doc/Makefile b/doc/Makefile
index 3b3e51a3..e66a73db 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -64,6 +64,33 @@ pd_fileformat_install: $(MANUALS_DEST)
curl http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html > \
$(MANUALS_DEST)/$(PD_FILEFORMAT_NAME)/Pd_File_Format.html
+#------------------------------------------------------------------------------#
+# EXTERNALS-HOWTO
+EXTERNALS-HOWTO_NAME = Externals-HOWTO
+externals-howto_install: $(MANUALS_DEST)
+ install -d $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/pd-externals-HOWTO.pdf > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/pd-externals-HOWTO.pdf
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node1.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node1.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node2.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node2.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node3.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node3.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node4.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node5.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node5.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node6.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node6.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node7.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node7.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node8.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node8.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node9.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node9.html
+ curl http://iem.kug.ac.at/pd/externals-HOWTO/node10.html > \
+ $(MANUALS_DEST)/$(EXTERNALS-HOWTO_NAME)/node10.html
#------------------------------------------------------------------------------#
diff --git a/doc/Makefile.buildlayout b/doc/Makefile.buildlayout
index 921a7959..12df9df5 100644
--- a/doc/Makefile.buildlayout
+++ b/doc/Makefile.buildlayout
@@ -19,12 +19,12 @@
#
# This file is currently located in these places:
# abstractions
-# externals/build
+# extensions
+# externals
# packages
# doc
#
# it will be going here too:
-# extensions
# gem
# pd
#
@@ -65,10 +65,10 @@ endif
# sources
ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTENSIONS_SRC = $(SRC_ROOT_DIR)/extensions
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
@@ -130,7 +130,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
# release version for this distro
-PACKAGE_VERSION = extended-RC4
+PACKAGE_VERSION = extended-RC5
PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
diff --git a/doc/TODO b/doc/TODO
index 94a60cfc..4de5bfae 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,4 +1,6 @@
+- add externals HOWTO to manuals/Pd
+
- create Makefile for Pd-extended build system
- add pd-fileformat doc: http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html
diff --git a/externals/Makefile b/externals/Makefile
index ee9ce75d..1679d981 100644
--- a/externals/Makefile
+++ b/externals/Makefile
@@ -1,456 +1,471 @@
-#==============================================================================#
-#
-# Centralized build system for "externals".
-#
-# see README for instructions <hans@at.or.at>
-#
-#==============================================================================#
-
-# TODO: maybe this should be moved to the root like all the others
-
-CWD := $(shell pwd)
-
-# these are setup to be overridden by the packages/Makefile
-SRC_ROOT_DIR = $(CWD)/..
-INSTALL_PREFIX = $(CWD)/build
-BUILDLAYOUT_DIR = $(CWD)
-
-# default target
-default: all
-
-.SUFFIXES: .$(EXTENSION)
-
-
-include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
-
-
-# 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)
-
-#==============================================================================#
-#
-# COMPILE TARGETS
-#
-#==============================================================================#
-
-#------------------------------------------------------------------------------#
-# BUILD
-all: pre_all_$(OS_NAME) creb cyclone iemabs iemlib iemmatrix pddp pdp pmpd \
- toxy vbap zexy
- @echo "Compiling objects for $(OS_NAME) aka $(UNAME)"
-# try it this way so that it'll recognize files that have already been built
- cd $(EXTERNALS_SRC)/build/$(OS_NAME) && make -k
-
-# these targets are for platform-specific needs that run before objects:
-pre_all_darwin:
-
-pre_all_linux:
-
-pre_all_win:
-
-pre_all_unknown:
-# this target is for "everything else"
-
-
-#------------------------------------------------------------------------------#
-# INSTALL
-install: $(OBJECTS_DEST) help_install objects_install unfiltered_install \
- creb_install cyclone_install iemabs_install iemabs_install iemmatrix_install \
- pddp_install pdp_install pmpd_install toxy_install vbap_install zexy_install
- @echo " "
- @echo "externals install succeeded!"
-
-objects_install:
- cd $(EXTERNALS_SRC)/build/$(OS_NAME)/ && \
- install -p *.$(EXTENSION) $(OBJECTS_DEST)
-
-
-#==============================================================================#
-#
-# INSTALL TARGETS
-#
-#==============================================================================#
-
-
-help_install: $(HELP_DEST)
-#------------------------------------------------------------------------------#
-# all standard objs' help files
-# it had to be broken up because the list is soo long
- install -p \
- $(EXTERNALS_SRC)/OSCx/doc/*.pd \
- $(EXTERNALS_SRC)/aenv~/*.pd \
- $(EXTERNALS_SRC)/arraysize/*.pd \
- $(EXTERNALS_SRC)/beatpipe/*.pd \
- $(EXTERNALS_SRC)/control/*/*.pd \
- $(EXTERNALS_SRC)/bbogart/chaos/tools/*.pd \
- $(EXTERNALS_SRC)/bbogart/*/*.pd \
- $(EXTERNALS_SRC)/creb/doc/*.pd \
- $(HELP_DEST)
- install -p \
- $(EXTERNALS_SRC)/creb/doc/examples/*.pd \
- $(EXTERNALS_SRC)/cxc/reference/*.pd \
- $(EXTERNALS_SRC)/dfx/*/*.pd \
- $(EXTERNALS_SRC)/ext13/doc/*.pd \
- $(EXTERNALS_SRC)/ggee/*/*-help.pd \
- $(EXTERNALS_SRC)/gem2pdp/*.pd \
- $(EXTERNALS_SRC)/ff/*.pd \
- $(EXTERNALS_SRC)/freeverb~/*.pd \
- $(EXTERNALS_SRC)/hcs/*-help.pd \
- $(HELP_DEST)
- install -p \
- $(EXTERNALS_SRC)/hcs/*/doc/*.pd \
- $(EXTERNALS_SRC)/hcs/hid/examples/*.pd \
- $(EXTERNALS_SRC)/hcs/pan/*-help.pd \
- $(EXTERNALS_SRC)/iem/*/*/*-help.pd \
- $(EXTERNALS_SRC)/markex/*.pd \
- $(EXTERNALS_SRC)/motex/*.pd \
- $(EXTERNALS_SRC)/nusmuk/line3/*.pd\
- $(HELP_DEST)
- install -p \
- $(EXTERNALS_SRC)/pdogg/*/*.pd \
- $(EXTERNALS_SRC)/plugin~/*.pd \
- $(EXTERNALS_SRC)/rhythm_estimator/*.p? \
- $(EXTERNALS_SRC)/signal/*/*.pd \
- $(EXTERNALS_SRC)/sprinkler/sprinkler-help.pd \
- $(EXTERNALS_SRC)/susloop~/*.pd \
- $(EXTERNALS_SRC)/svf~/*.pd \
- $(EXTERNALS_SRC)/vbap/*.pd \
- $(EXTERNALS_SRC)/vst/*.pd \
- $(EXTERNALS_SRC)/zhzxh~/*.pd \
- $(HELP_DEST)
-#------------------------------------------------------------------------------#
-# mjlib [prob] conflicts with cyclone's [prob] so filter it
- install -p $(shell ls -1 $(EXTERNALS_SRC)/mjlib/doc/*.* | \
- grep -v 'prob') $(HELP_DEST)
-#------------------------------------------------------------------------------#
-# maxlib [split] conflicts with cyclone so filter it
- install -p $(shell ls -1 $(EXTERNALS_SRC)/maxlib/help/*.* | \
- grep -v 'split') $(HELP_DEST)
-
-
-
-#==============================================================================#
-#
-# PROJECT TARGETS
-#
-#==============================================================================#
-
-
-#------------------------------------------------------------------------------#
-# TEMPLATE
-TEMPLATE_NAME=template
-template:
-
-
-template_install: template
- install -d $(OBJECTS_DEST)/$(TEMPLATE_NAME)
- install -d $(HELP_DEST)/$(TEMPLATE_NAME)
- install -d $(MANUALS_DEST)/$(TEMPLATE_NAME)
- install -d $(APPLICATIONS_DEST)/$(TEMPLATE_NAME)
-
-
-#------------------------------------------------------------------------------#
-# CREB
-CREB_NAME=creb
-creb:
-
-
-creb_install: creb
- install -d $(OBJECTS_DEST)/$(CREB_NAME)
- install -p $(EXTERNALS_SRC)/creb/abs/*.pd $(OBJECTS_DEST)/$(CREB_NAME)
- install -d $(HELP_DEST)/$(CREB_NAME)
- install -p -m0644 $(EXTERNALS_SRC)/creb/doc/examples/*.* \
- $(HELP_DEST)/$(CREB_NAME)
-# install -d $(MANUALS_DEST)/$(CREB_NAME)
-# install -d $(APPLICATIONS_DEST)/$(CREB_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# CYCLONE
-CYCLONE_NAME=cyclone
-# cyclone is compiled straight into $(OUT_DIR)
-CYCLONE_OUT_DIR=$(OBJECTS_DEST)/$(CYCLONE_NAME)
-cyclone:
-
-
-cyclone_install: cyclone
- install -d $(OBJECTS_DEST)/$(CYCLONE_NAME)
- $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(CYCLONE_NAME) \
- --author "Kzrysztof Czaja" \
- --license "BSD" \
- --description "a library for porting and running Max/MSP patches in Pd"
- cd $(EXTERNALS_SRC)/miXed/cyclone && $(MAKE) OUT_DIR=$(CYCLONE_OUT_DIR)
-# install "cyclist" command line app with pd
- install -d $(BIN_DEST)
-# this doesn't build in the right place yet
-# install -p -m0755 $(CYCLONE_OUT_DIR)/cyclist $(BIN_DEST) && \
-# rm $(CYCLONE_OUT_DIR)/cyclist
-# rename cyclone lib since it will pre-empt libdir functionality
- mv $(CYCLONE_OUT_DIR)/cyclone.$(EXTENSION) \
- $(CYCLONE_OUT_DIR)/cyclonelib.$(EXTENSION)
- install -d $(HELP_DEST)/$(CYCLONE_NAME)
- install -p $(EXTERNALS_SRC)/miXed/doc/help/cyclone/*.* \
- $(HELP_DEST)/$(CYCLONE_NAME)
-# install -d $(MANUALS_DEST)/$(CYCLONE_NAME)
- install -d $(APPLICATIONS_DEST)/$(CYCLONE_NAME)
- install -p $(EXTERNALS_SRC)/miXed/test/cyclone/*.* \
- $(APPLICATIONS_DEST)/$(CYCLONE_NAME)
-
-
-
-
-
-#------------------------------------------------------------------------------#
-# IEMABS
-IEMABS_NAME=iemabs
-iemabs:
-
-
-iemabs_install: iemabs
-# iemabs still has the help patches in the old help-*.pd style
- install -d $(OBJECTS_DEST)/$(IEMABS_NAME)
- install -p $(shell ls -1 $(EXTERNALS_SRC)/iemlib/iemabs/*.pd | \
- grep -v 'help') $(OBJECTS_DEST)/$(IEMABS_NAME)
- install -d $(HELP_DEST)/$(IEMABS_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/iemabs/*help*.pd \
- $(HELP_DEST)/$(IEMABS_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.mp3 $(HELP_DEST)/$(IEMABS_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.wav $(HELP_DEST)/$(IEMABS_NAME)
- install -d $(MANUALS_DEST)/$(IEMABS_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.txt \
- $(MANUALS_DEST)/$(IEMABS_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# IEMLIB
-IEMLIB_NAME=iemlib
-iemlib:
-
-
-iemlib_install: iemlib
-# install -d $(OBJECTS_DEST)/$(IEMLIB_NAME)
-# install -d $(HELP_DEST)/$(IEMLIB_NAME)
- install -d $(HELP_DEST)/iemhelp
- install -p $(EXTERNALS_SRC)/iemlib/iemhelp/*.* $(HELP_DEST)/iemhelp
-# install -d $(MANUALS_DEST)/$(IEMLIB_NAME)
- install -d $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/examples/*.* \
- $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# IEMMATRIX
-IEMMATRIX_NAME=iemmatrix
-iemmatrix:
-
-
-iemmatrix_install: iemmatrix
- install -d $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
- install -p $(shell ls -1 $(EXTERNALS_SRC)/iem/iemmatrix/abs/*.* | \
- grep -v '\-help.pd') $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
- install -d $(HELP_DEST)/$(IEMMATRIX_NAME)
- install -p $(EXTERNALS_SRC)/iem/iemmatrix/doc/*.pd \
- $(HELP_DEST)/$(IEMMATRIX_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# PDDP
-PDDP_NAME=pddp
-# pddp is compiled straight into $(OUT_DIR)
-PDDP_OUT_DIR=$(OBJECTS_DEST)/$(PDDP_NAME)
-pddp:
-
-
-pddp_install: pddp
- install -d $(OBJECTS_DEST)/$(PDDP_NAME)
- $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(PDDP_NAME) \
- --author "PDDP" \
- --license "BSD" \
- --description "objects for working with Tcl and Pd's Tk GUI"
- cd $(EXTERNALS_SRC)/miXed/pddp && $(MAKE) OUT_DIR=$(PDDP_OUT_DIR)
-# install -d $(HELP_DEST)/$(PDDP_NAME)
-# install -d $(MANUALS_DEST)/$(PDDP_NAME)
- install -d $(APPLICATIONS_DEST)/$(PDDP_NAME)
- install -p $(EXTERNALS_SRC)/miXed/test/pddp/*.* \
- $(APPLICATIONS_DEST)/$(PDDP_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# PDP
-PDP_NAME=pdp
-pdp:
-# cd $(EXTERNALS_SRC)/pdp && ./configure && $(MAKE)
-#TODO: compile pidip here
-#TODO: compile gem2pdp here
-
-pdp_install: pdp
-# install -d $(OBJECTS_DEST)/$(PDP_NAME)
-# install -p $(EXTERNALS_SRC)/pdp/*.$(EXTENSION) $(OBJECTS_DEST)
-# install -p $(EXTERNALS_SRC)/pidip/*.$(EXTENSION) $(OBJECTS_DEST)
-# install -p $(EXTERNALS_SRC)/gem2pdp/*.$(EXTENSION) $(OBJECTS_DEST)
- install -p $(EXTERNALS_SRC)/pdp/abstractions/*.pd $(OBJECTS_DEST)
-# install -d $(HELP_DEST)/$(PDP_NAME)
- install -p $(EXTERNALS_SRC)/pdp/doc/objects/*.* $(HELP_DEST)
- install -d $(MANUALS_DEST)/$(PDP_NAME)
- install -p $(EXTERNALS_SRC)/pdp/doc/reference.txt $(MANUALS_DEST)/$(PDP_NAME)
- install -p $(EXTERNALS_SRC)/pdp/doc/introduction/*.* \
- $(MANUALS_DEST)/$(PDP_NAME)
- install -d $(APPLICATIONS_DEST)/$(PDP_NAME)
- install -p $(EXTERNALS_SRC)/pdp/doc/examples/*.* \
- $(APPLICATIONS_DEST)/$(PDP_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# PMPD
-PMPD_NAME=pmpd
-pmpd:
-
-
-pmpd_install: pmpd
- install -d $(OBJECTS_DEST)/$(PMPD_NAME)
- install -d $(HELP_DEST)/$(PMPD_NAME)
- install -p $(EXTERNALS_SRC)/pmpd/help/*.pd \
- $(HELP_DEST)/$(PMPD_NAME)
- install -d $(MANUALS_DEST)/$(PMPD_NAME)
- install -d $(MANUALS_DEST)/$(PMPD_NAME)
- install -p $(EXTERNALS_SRC)/pmpd/doc/pmpd.pdf/pmpd.pdf \
- $(MANUALS_DEST)/$(PMPD_NAME)
- install -d $(APPLICATIONS_DEST)/$(PMPD_NAME)
- install -p $(EXTERNALS_SRC)/pmpd/exemples/*.pd \
- $(APPLICATIONS_DEST)/$(PMPD_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# TOXY
-TOXY_NAME=toxy
-# toxy is compiled straight into $(OUT_DIR)
-TOXY_OUT_DIR=$(OBJECTS_DEST)/$(TOXY_NAME)
-toxy:
-
-
-toxy_install: toxy
- install -d $(OBJECTS_DEST)/$(TOXY_NAME)
- $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(TOXY_NAME) \
- --author "Kzrysztof Czaja" \
- --license "BSD" \
- --description "objects for working with Tcl and Pd's Tk GUI"
- cd $(EXTERNALS_SRC)/miXed/toxy && $(MAKE) OUT_DIR=$(TOXY_OUT_DIR)
- install -d $(HELP_DEST)/$(TOXY_NAME)
- install -p $(EXTERNALS_SRC)/miXed/doc/help/toxy/*.* \
- $(HELP_DEST)/$(TOXY_NAME)
-# install -d $(MANUALS_DEST)/$(TOXY_NAME)
- install -d $(APPLICATIONS_DEST)/$(TOXY_NAME)
- install -p $(EXTERNALS_SRC)/miXed/test/toxy/*.* \
- $(APPLICATIONS_DEST)/$(TOXY_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# VBAP
-VBAP_NAME=vbap
-vbap:
-
-
-vbap_install: vbap
- install -d $(OBJECTS_DEST)/$(VBAP_NAME)
-# install -d $(HELP_DEST)/$(VBAP_NAME)
-# install -d $(MANUALS_DEST)/$(VBAP_NAME)
-# install -d $(APPLICATIONS_DEST)/$(VBAP_NAME)
- install -p $(EXTERNALS_SRC)/vbap/graph-to-aziele.pd \
- $(OBJECTS_DEST)/$(VBAP_NAME)
-
-
-
-#------------------------------------------------------------------------------#
-# Zexy
-ZEXY_NAME = zexy
-zexy:
-# zexy's new build system doesn't work with CVS layout, and most of zexy is
-# included in the extrnals build system now anyway. But the abstractions
-# should still be included
-# cd $(EXTERNALS_SRC)/zexy/src && autoconf && ./configure && $(MAKE)
-
-
-zexy_install: zexy
- install -d $(OBJECTS_DEST)/$(ZEXY_NAME)
-# install -p $(EXTERNALS_SRC)/zexy/src/*.$(EXTENSION) $(OBJECTS_DEST)/$(ZEXY_NAME)
- install -p $(shell ls -1 $(EXTERNALS_SRC)/zexy/abs/*.pd | \
- grep -v '-help.pd' | sed 's/\([&<>|~]\)/\\\1/g') \
- $(OBJECTS_DEST)/$(ZEXY_NAME)
- install -d $(HELP_DEST)/$(ZEXY_NAME)
- install -p $(EXTERNALS_SRC)/zexy/abs/*-help.pd $(HELP_DEST)/$(ZEXY_NAME)
- install -p $(EXTERNALS_SRC)/zexy/zexy.pd $(HELP_DEST)
- install -p $(EXTERNALS_SRC)/zexy/examples/*.* $(HELP_DEST)/$(ZEXY_NAME)
-
-
-
-#==============================================================================#
-#
-# UNFILTERED PROJECT TARGETS
-#
-#==============================================================================#
-# this is not yet organized into libdirs, but just leftover <hans@at.or.at>
-
-unfiltered_install:
-#----------------------------------------------------------------------------
-# hcs
- install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/*.pd | \
- grep -v '\-help.pd') $(OBJECTS_DEST)
-# hid
-# these don't work on Windows yet
- cd $(EXTERNALS_SRC)/hcs/hid && $(MAKE)
- install -p $(EXTERNALS_SRC)/hcs/hid/hid.$(EXTENSION) $(OBJECTS_DEST)
- install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/hid/*.pd | \
- grep -v '\-help.pd'| grep -v '\-list.pd') $(OBJECTS_DEST)
-# general
- install -p $(EXTERNALS_SRC)/hcs/general/*.pd $(OBJECTS_DEST)
-# pan
- install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/pan/*.pd | \
- grep -v '\-help.pd') $(OBJECTS_DEST)
-#----------------------------------------------------------------------------
-# OSC
-# these don't work on Windows yet
- cd $(EXTERNALS_SRC)/OSCx && ./configure && $(MAKE) CC=gcc
- install -p $(EXTERNALS_SRC)/OSCx/doc/*.* $(HELP_DEST)
- install -p $(EXTERNALS_SRC)/OSCx/src/*.$(EXTENSION) $(OBJECTS_DEST)
-#----------------------------------------------------------------------------
-# unauthorized
-# these don't work on Windows yet
- cd $(EXTERNALS_SRC)/unauthorized && $(MAKE)
- install -p $(EXTERNALS_SRC)/unauthorized/*/*.$(EXTENSION) $(OBJECTS_DEST)
- install -p $(EXTERNALS_SRC)/unauthorized/*/*.pd $(HELP_DEST)
- install -p $(EXTERNALS_SRC)/unauthorized/*/*.txt $(HELP_DEST)
- install -p $(EXTERNALS_SRC)/unauthorized/*/*.pls $(HELP_DEST)
- cp -Rfp $(EXTERNALS_SRC)/unauthorized/blinkenlights/blm $(HELP_DEST)
-
-
-#==============================================================================#
-#
-# DEVELOPER'S TARGETS
-#
-#==============================================================================#
-
-# make the symlinks necessary to simulate the installed environment
-devsymlinks:
-
-
-#==============================================================================#
-#
-# CLEAN TARGETS
-#
-#==============================================================================#
-
-# the destination-specific clean targets are in Makefile.buildlayout
-clean: install_clean
-
-distclean: clean cruft_clean
+#==============================================================================#
+#
+# Centralized build system for "externals".
+#
+# see README for instructions <hans@at.or.at>
+#
+#==============================================================================#
+
+# TODO: maybe this should be moved to the root like all the others
+
+CWD := $(shell pwd)
+
+# these are setup to be overridden by the packages/Makefile
+SRC_ROOT_DIR = $(CWD)/..
+INSTALL_PREFIX = $(CWD)/build
+BUILDLAYOUT_DIR = $(CWD)
+
+# default target
+default: all
+
+.SUFFIXES: .$(EXTENSION)
+
+
+include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
+
+
+# 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)
+
+#==============================================================================#
+#
+# COMPILE TARGETS
+#
+#==============================================================================#
+
+#------------------------------------------------------------------------------#
+# BUILD
+all: pre_all_$(OS_NAME) creb cyclone iemabs iemlib iemmatrix pddp pdp pmpd \
+ toxy vbap zexy
+ @echo "Compiling objects for $(OS_NAME) aka $(UNAME)"
+# try it this way so that it'll recognize files that have already been built
+ cd $(EXTERNALS_SRC)/build/$(OS_NAME) && make -k
+
+# these targets are for platform-specific needs that run before objects:
+pre_all_darwin:
+
+pre_all_linux:
+
+pre_all_win:
+
+pre_all_unknown:
+# this target is for "everything else"
+
+
+#------------------------------------------------------------------------------#
+# INSTALL
+install: all $(OBJECTS_DEST) help_install objects_install unfiltered_install \
+ creb_install cyclone_install iemabs_install iemabs_install iemmatrix_install \
+ pddp_install pdp_install pmpd_install toxy_install vbap_install zexy_install
+ @echo " "
+ @echo "externals install succeeded!"
+
+objects_install:
+ cd $(EXTERNALS_SRC)/build/$(OS_NAME)/ && \
+ install -p *.$(EXTENSION) $(OBJECTS_DEST)
+
+
+#==============================================================================#
+#
+# INSTALL TARGETS
+#
+#==============================================================================#
+
+
+help_install: $(HELP_DEST)
+#------------------------------------------------------------------------------#
+# all standard objs' help files
+# it had to be broken up because the list is soo long
+ install -p \
+ $(EXTERNALS_SRC)/OSCx/doc/*.pd \
+ $(EXTERNALS_SRC)/aenv~/*.pd \
+ $(EXTERNALS_SRC)/arraysize/*.pd \
+ $(EXTERNALS_SRC)/beatpipe/*.pd \
+ $(EXTERNALS_SRC)/control/*/*.pd \
+ $(EXTERNALS_SRC)/bbogart/chaos/tools/*.pd \
+ $(EXTERNALS_SRC)/bbogart/*/*.pd \
+ $(EXTERNALS_SRC)/creb/doc/*.pd \
+ $(HELP_DEST)
+ install -p \
+ $(EXTERNALS_SRC)/creb/doc/examples/*.pd \
+ $(EXTERNALS_SRC)/cxc/reference/*.pd \
+ $(EXTERNALS_SRC)/dfx/*/*.pd \
+ $(EXTERNALS_SRC)/ext13/doc/*.pd \
+ $(EXTERNALS_SRC)/ggee/*/*-help.pd \
+ $(EXTERNALS_SRC)/gem2pdp/*.pd \
+ $(EXTERNALS_SRC)/ff/*.pd \
+ $(EXTERNALS_SRC)/freeverb~/*.pd \
+ $(EXTERNALS_SRC)/hcs/*-help.pd \
+ $(HELP_DEST)
+ install -p \
+ $(EXTERNALS_SRC)/hcs/*/doc/*.pd \
+ $(EXTERNALS_SRC)/hcs/hid/examples/*.pd \
+ $(EXTERNALS_SRC)/hcs/pan/*-help.pd \
+ $(EXTERNALS_SRC)/iem/comport/*/*-help.pd \
+ $(EXTERNALS_SRC)/markex/*.pd \
+ $(EXTERNALS_SRC)/motex/*.pd \
+ $(EXTERNALS_SRC)/nusmuk/line3/*.pd\
+ $(HELP_DEST)
+ install -p \
+ $(EXTERNALS_SRC)/pdogg/*/*.pd \
+ $(EXTERNALS_SRC)/plugin~/*.pd \
+ $(EXTERNALS_SRC)/rhythm_estimator/*.p? \
+ $(EXTERNALS_SRC)/signal/*/*.pd \
+ $(EXTERNALS_SRC)/sprinkler/sprinkler-help.pd \
+ $(EXTERNALS_SRC)/susloop~/*.pd \
+ $(EXTERNALS_SRC)/svf~/*.pd \
+ $(EXTERNALS_SRC)/vbap/*.pd \
+ $(EXTERNALS_SRC)/vst/*.pd \
+ $(EXTERNALS_SRC)/zhzxh~/*.pd \
+ $(HELP_DEST)
+#------------------------------------------------------------------------------#
+# mjlib [prob] conflicts with cyclone's [prob] so filter it
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/mjlib/doc/*.* | \
+ grep -v 'prob') $(HELP_DEST)
+#------------------------------------------------------------------------------#
+# maxlib [split] conflicts with cyclone so filter it
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/maxlib/help/*.* | \
+ grep -v 'split') $(HELP_DEST)
+
+
+
+#==============================================================================#
+#
+# PROJECT TARGETS
+#
+#==============================================================================#
+
+
+#------------------------------------------------------------------------------#
+# TEMPLATE
+TEMPLATE_NAME=template
+template:
+
+
+template_install: template
+ install -d $(OBJECTS_DEST)/$(TEMPLATE_NAME)
+ install -d $(HELP_DEST)/$(TEMPLATE_NAME)
+ install -d $(MANUALS_DEST)/$(TEMPLATE_NAME)
+ install -d $(APPLICATIONS_DEST)/$(TEMPLATE_NAME)
+
+
+#------------------------------------------------------------------------------#
+# CREB
+CREB_NAME=creb
+creb:
+
+
+creb_install: creb
+ install -d $(OBJECTS_DEST)/$(CREB_NAME)
+ install -p $(EXTERNALS_SRC)/creb/abs/*.pd $(OBJECTS_DEST)/$(CREB_NAME)
+ install -d $(HELP_DEST)/$(CREB_NAME)
+ install -p -m0644 $(EXTERNALS_SRC)/creb/doc/examples/*.* \
+ $(HELP_DEST)/$(CREB_NAME)
+# install -d $(MANUALS_DEST)/$(CREB_NAME)
+# install -d $(APPLICATIONS_DEST)/$(CREB_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# CYCLONE
+CYCLONE_NAME=cyclone
+# cyclone is compiled straight into $(OUT_DIR)
+CYCLONE_OUT_DIR=$(OBJECTS_DEST)/$(CYCLONE_NAME)
+cyclone:
+
+
+cyclone_install: cyclone
+ install -d $(OBJECTS_DEST)/$(CYCLONE_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(CYCLONE_NAME) \
+ --author "Kzrysztof Czaja" \
+ --license "BSD" \
+ --description "a library for porting and running Max/MSP patches in Pd"
+ cd $(EXTERNALS_SRC)/miXed/cyclone && $(MAKE) OUT_DIR=$(CYCLONE_OUT_DIR)
+# install "cyclist" command line app with pd
+ install -d $(BIN_DEST)
+# this doesn't build in the right place yet
+# install -p -m0755 $(CYCLONE_OUT_DIR)/cyclist $(BIN_DEST) && \
+# rm $(CYCLONE_OUT_DIR)/cyclist
+# rename cyclone lib since it will pre-empt libdir functionality
+ mv $(CYCLONE_OUT_DIR)/cyclone.$(EXTENSION) \
+ $(CYCLONE_OUT_DIR)/cyclonelib.$(EXTENSION)
+ install -d $(HELP_DEST)/$(CYCLONE_NAME)
+ install -p $(EXTERNALS_SRC)/miXed/doc/help/cyclone/*.* \
+ $(HELP_DEST)/$(CYCLONE_NAME)
+# install -d $(MANUALS_DEST)/$(CYCLONE_NAME)
+ install -d $(APPLICATIONS_DEST)/$(CYCLONE_NAME)
+ install -p $(EXTERNALS_SRC)/miXed/test/cyclone/*.* \
+ $(APPLICATIONS_DEST)/$(CYCLONE_NAME)
+
+
+
+
+
+#------------------------------------------------------------------------------#
+# IEMABS
+IEMABS_NAME=iemabs
+iemabs:
+
+
+iemabs_install: iemabs
+# iemabs still has the help patches in the old help-*.pd style
+ install -d $(OBJECTS_DEST)/$(IEMABS_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(IEMABS_NAME) \
+ --description "a collection of objects written at IEM/KUG"
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/iemlib/iemabs/*.pd | \
+ grep -v 'help') $(OBJECTS_DEST)/$(IEMABS_NAME)
+ install -d $(HELP_DEST)/$(IEMABS_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/iemabs/*help*.pd \
+ $(HELP_DEST)/$(IEMABS_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.mp3 $(HELP_DEST)/$(IEMABS_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.wav $(HELP_DEST)/$(IEMABS_NAME)
+ install -d $(MANUALS_DEST)/$(IEMABS_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.txt \
+ $(MANUALS_DEST)/$(IEMABS_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# IEMLIB
+IEMLIB_NAME=iemlib
+iemlib:
+
+
+iemlib_install: iemlib
+# install -d $(OBJECTS_DEST)/$(IEMLIB_NAME)
+# install -d $(HELP_DEST)/$(IEMLIB_NAME)
+ install -d $(HELP_DEST)/iemhelp
+ install -p $(EXTERNALS_SRC)/iemlib/iemhelp/*.* $(HELP_DEST)/iemhelp
+# install -d $(MANUALS_DEST)/$(IEMLIB_NAME)
+ install -d $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/examples/*.* \
+ $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# IEMMATRIX
+IEMMATRIX_NAME=iemmatrix
+iemmatrix:
+
+
+iemmatrix_install: iemmatrix
+ install -d $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(IEMMATRIX_NAME) \
+ --description "objects for matrix operations and math"
+ mv $(OBJECTS_DEST)/mtx*.$(EXTENSION) $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/iem/iemmatrix/abs/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
+ install -d $(HELP_DEST)/$(IEMMATRIX_NAME)
+ install -p $(EXTERNALS_SRC)/iem/iemmatrix/doc/*.pd \
+ $(HELP_DEST)/$(IEMMATRIX_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# PDDP
+PDDP_NAME=pddp
+# pddp is compiled straight into $(OUT_DIR)
+PDDP_OUT_DIR=$(OBJECTS_DEST)/$(PDDP_NAME)
+pddp:
+
+
+pddp_install: pddp
+ install -d $(OBJECTS_DEST)/$(PDDP_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(PDDP_NAME) \
+ --author "PDDP" \
+ --license "BSD" \
+ --description "objects for working with Tcl and Pd's Tk GUI"
+ cd $(EXTERNALS_SRC)/miXed/pddp && $(MAKE) OUT_DIR=$(PDDP_OUT_DIR)
+# install -d $(HELP_DEST)/$(PDDP_NAME)
+# install -d $(MANUALS_DEST)/$(PDDP_NAME)
+ install -d $(APPLICATIONS_DEST)/$(PDDP_NAME)
+ install -p $(EXTERNALS_SRC)/miXed/test/pddp/*.* \
+ $(APPLICATIONS_DEST)/$(PDDP_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# PDP
+PDP_NAME=pdp
+pdp:
+# cd $(EXTERNALS_SRC)/pdp && ./configure && $(MAKE)
+#TODO: compile pidip here
+#TODO: compile gem2pdp here
+
+pdp_install: pdp
+# install -d $(OBJECTS_DEST)/$(PDP_NAME)
+# install -p $(EXTERNALS_SRC)/pdp/*.$(EXTENSION) $(OBJECTS_DEST)
+# install -p $(EXTERNALS_SRC)/pidip/*.$(EXTENSION) $(OBJECTS_DEST)
+# install -p $(EXTERNALS_SRC)/gem2pdp/*.$(EXTENSION) $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/pdp/abstractions/*.pd $(OBJECTS_DEST)
+# install -d $(HELP_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/objects/*.* $(HELP_DEST)
+ install -d $(MANUALS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/reference.txt $(MANUALS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/introduction/*.* \
+ $(MANUALS_DEST)/$(PDP_NAME)
+ install -d $(APPLICATIONS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/examples/*.* \
+ $(APPLICATIONS_DEST)/$(PDP_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# PMPD
+PMPD_NAME=pmpd
+pmpd:
+
+
+pmpd_install: pmpd
+# install -d $(OBJECTS_DEST)/$(PMPD_NAME)
+ install -d $(HELP_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/help/*.pd \
+ $(HELP_DEST)/$(PMPD_NAME)
+ install -d $(MANUALS_DEST)/$(PMPD_NAME)
+ install -d $(MANUALS_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/doc/pmpd.pdf/pmpd.pdf \
+ $(MANUALS_DEST)/$(PMPD_NAME)
+ install -d $(APPLICATIONS_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/exemples/*.pd \
+ $(APPLICATIONS_DEST)/$(PMPD_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# TOXY
+TOXY_NAME=toxy
+# toxy is compiled straight into $(OUT_DIR)
+TOXY_OUT_DIR=$(OBJECTS_DEST)/$(TOXY_NAME)
+toxy:
+
+
+toxy_install: toxy
+ install -d $(OBJECTS_DEST)/$(TOXY_NAME)
+ $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(TOXY_NAME) \
+ --author "Kzrysztof Czaja" \
+ --license "BSD" \
+ --description "objects for working with Tcl and Pd's Tk GUI"
+ cd $(EXTERNALS_SRC)/miXed/toxy && $(MAKE) OUT_DIR=$(TOXY_OUT_DIR)
+ install -d $(HELP_DEST)/$(TOXY_NAME)
+ install -p $(EXTERNALS_SRC)/miXed/doc/help/toxy/*.* \
+ $(HELP_DEST)/$(TOXY_NAME)
+# install -d $(MANUALS_DEST)/$(TOXY_NAME)
+ install -d $(APPLICATIONS_DEST)/$(TOXY_NAME)
+ install -p $(EXTERNALS_SRC)/miXed/test/toxy/*.* \
+ $(APPLICATIONS_DEST)/$(TOXY_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# VBAP
+VBAP_NAME=vbap
+vbap:
+
+
+vbap_install: vbap
+ install -d $(OBJECTS_DEST)/$(VBAP_NAME)
+# install -d $(HELP_DEST)/$(VBAP_NAME)
+# install -d $(MANUALS_DEST)/$(VBAP_NAME)
+# install -d $(APPLICATIONS_DEST)/$(VBAP_NAME)
+ install -p $(EXTERNALS_SRC)/vbap/graph-to-aziele.pd \
+ $(OBJECTS_DEST)/$(VBAP_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# Zexy
+ZEXY_NAME = zexy
+zexy:
+# zexy's new build system doesn't work with CVS layout, and most of zexy is
+# included in the extrnals build system now anyway. But the abstractions
+# should still be included
+# cd $(EXTERNALS_SRC)/zexy/src && autoconf && ./configure && $(MAKE)
+
+
+zexy_install: zexy
+ install -d $(OBJECTS_DEST)/$(ZEXY_NAME)
+# install -p $(EXTERNALS_SRC)/zexy/src/*.$(EXTENSION) $(OBJECTS_DEST)/$(ZEXY_NAME)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/zexy/abs/*.pd | \
+ grep -v '-help.pd' | sed 's/\([&<>|~]\)/\\\1/g') \
+ $(OBJECTS_DEST)/$(ZEXY_NAME)
+ install -d $(HELP_DEST)/$(ZEXY_NAME)
+ install -p $(EXTERNALS_SRC)/zexy/abs/*-help.pd $(HELP_DEST)/$(ZEXY_NAME)
+ install -p $(EXTERNALS_SRC)/zexy/zexy.pd $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/zexy/examples/*.* $(HELP_DEST)/$(ZEXY_NAME)
+
+
+
+#==============================================================================#
+#
+# UNFILTERED PROJECT TARGETS
+#
+#==============================================================================#
+# this is not yet organized into libdirs, but just leftover <hans@at.or.at>
+
+unfiltered_install:
+#----------------------------------------------------------------------------
+# hcs
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/*.pd | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)
+# hid
+# these don't work on Windows yet
+ cd $(EXTERNALS_SRC)/hcs/hid && $(MAKE)
+ install -p $(EXTERNALS_SRC)/hcs/hid/hid.$(EXTENSION) $(OBJECTS_DEST)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/hid/*.pd | \
+ grep -v '\-help.pd'| grep -v '\-list.pd') $(OBJECTS_DEST)
+# general
+ install -p $(EXTERNALS_SRC)/hcs/general/*.pd $(OBJECTS_DEST)
+# pan
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/pan/*.pd | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)
+#----------------------------------------------------------------------------
+# OSC
+ test -e cd $(EXTERNALS_SRC)/OSCx/Makefile || \
+ (cd $(EXTERNALS_SRC)/OSCx && ./configure)
+# these don't work on Windows yet
+ cd $(EXTERNALS_SRC)/OSCx && $(MAKE) CC=gcc
+ install -p $(EXTERNALS_SRC)/OSCx/doc/*.* $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/OSCx/src/*.$(EXTENSION) $(OBJECTS_DEST)
+#----------------------------------------------------------------------------
+# unauthorized
+# these don't work on Windows yet
+ cd $(EXTERNALS_SRC)/unauthorized && $(MAKE)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.$(EXTENSION) $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.pd $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.txt $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.pls $(HELP_DEST)
+ cp -Rfp $(EXTERNALS_SRC)/unauthorized/blinkenlights/blm $(HELP_DEST)
+
+
+#==============================================================================#
+#
+# DEVELOPER'S TARGETS
+#
+#==============================================================================#
+
+# make the symlinks necessary to simulate the installed environment
+devsymlinks:
+
+
+#==============================================================================#
+#
+# CLEAN TARGETS
+#
+#==============================================================================#
+
+# the destination-specific clean targets are in Makefile.buildlayout
+clean: install_clean
+ cd $(EXTERNALS_SRC)/build/$(OS_NAME) && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/hcs/hid && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/OSCx && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/mixed/cyclone && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/mixed/pddp && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/mixed/toxy && make $(DEST_PATHS) clean
+ cd $(EXTERNALS_SRC)/unauthorized && make $(DEST_PATHS) clean
+
+distclean: clean cruft_clean
+ rm $(EXTERNALS_SRC)/OSCx Makefile
diff --git a/externals/Makefile.buildlayout b/externals/Makefile.buildlayout
index 921a7959..12df9df5 100644
--- a/externals/Makefile.buildlayout
+++ b/externals/Makefile.buildlayout
@@ -19,12 +19,12 @@
#
# This file is currently located in these places:
# abstractions
-# externals/build
+# extensions
+# externals
# packages
# doc
#
# it will be going here too:
-# extensions
# gem
# pd
#
@@ -65,10 +65,10 @@ endif
# sources
ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTENSIONS_SRC = $(SRC_ROOT_DIR)/extensions
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
@@ -130,7 +130,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
# release version for this distro
-PACKAGE_VERSION = extended-RC4
+PACKAGE_VERSION = extended-RC5
PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
diff --git a/externals/build/TODO b/externals/build/TODO
index da3aa827..7f6e5de6 100644
--- a/externals/build/TODO
+++ b/externals/build/TODO
@@ -1,4 +1,7 @@
+- incorporate %.c building into cross-platform Makefile, and have it work with
+ subdirectories so that libdirs can be compiled here.
+
- simplify Makefile, making just "all" and "install" with subsections for each
subdir.
@@ -32,3 +35,5 @@
PDContainer
ann
grh
+ iemstream
+ iemxmlrpc
diff --git a/packages/Makefile b/packages/Makefile
index 5316b2e7..ca503f54 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -130,6 +130,7 @@ flext:
#------------------------------------------------------------------------------
# Gem
gem:
+# cd $(GEM_SRC)/Gem && xcodebuild
#------------------------------------------------------------------------------
@@ -180,18 +181,25 @@ pd:
#==============================================================================#
#------------------------------------------------------------------------------
-# abstractions
+# install
+install: license_install readme_install welcome_install gem_install
+install: pd_install abstractions_install doc_install externals_install
+install: noncvs_install
+ @echo "Complete install succeeded!"
+
+#------------------------------------------------------------------------------
+# abstractions_install
abstractions_install:
cd $(ABSTRACTIONS_SRC) && make $(DEST_PATHS) install
#------------------------------------------------------------------------------
-# doc
+# doc_install
doc_install:
cd $(DOC_SRC) && make $(DEST_PATHS) install
#------------------------------------------------------------------------------
-# externals
+# externals_install
externals_install:
cd $(EXTERNALS_SRC) && make $(DEST_PATHS) install
@@ -210,12 +218,38 @@ flext_install:
#------------------------------------------------------------------------------
-# Gem
-gem_install:
+# gem_install
+GEM_NAME = gem
+gem_install: gem $(HELP_DEST)
+ install -p $(GEM_SRC)/help/*.* $(HELP_DEST)
+ install -p $(GEM_SRC)/abstractions/*-help.pd $(HELP_DEST)
+ install -d $(OBJECTS_DEST)/$(GEM_NAME)
+ install -p $(shell ls -1 $(GEM_SRC)/abstractions/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)
+ install -d $(MANUALS_DEST)/$(GEM_NAME)
+ install -p $(GEM_SRC)/doc/*.* $(MANUALS_DEST)/$(GEM_NAME)
+ install -d $(MANUALS_DEST)/$(GEM_NAME)/manual
+ install -p $(GEM_SRC)/manual/*.* $(MANUALS_DEST)/$(GEM_NAME)/manual
+ for dir in $(shell ls -1 $(GEM_SRC)/examples | grep -v CVS); do \
+ echo "installing $$dir"; \
+ install -d $(APPLICATIONS_DEST)/$(GEM_NAME)/$$dir ; \
+ install -p $(GEM_SRC)/examples/$$dir/*.* $(APPLICATIONS_DEST)/$(GEM_NAME)/$$dir ; \
+ done
#------------------------------------------------------------------------------
-# pd
+# noncvs_install
+# this is for including pre-compiled binaries in a build
+noncvs_install:
+ -install -p $(PACKAGES_SRC)/noncvs/$(OS_NAME)/bin/*.* $(BIN_DEST)
+ -install -p $(PACKAGES_SRC)/noncvs/$(OS_NAME)/doc/5.reference/*.* \
+ $(HELP_DEST)
+ -install -p $(PACKAGES_SRC)/noncvs/$(OS_NAME)/extra/*.* $(OBJECTS_DEST)
+
+
+
+#------------------------------------------------------------------------------
+# pd_install
PD_NAME=Pd
pd_install: pd
cd $(PD_SRC)/src && \
@@ -224,14 +258,6 @@ pd_install: pd
install -p $(PD_SRC)/src/notes.txt $(MANUALS_DEST)/$(PD_NAME)
-#------------------------------------------------------------------------------
-# install
-install: license_install readme_install welcome_install
-install: pd_install abstractions_install doc_install externals_install
-#install: flext_install gem_install
- @echo "Complete install succeeded!"
-
-
#==============================================================================#
#
@@ -340,10 +366,10 @@ doc_format:
# 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
+ find $(DOCS_DEST) -name '*.pd' -print0 | xargs -0 chmod a-wx
+ find $(DOCS_DEST) -name '*.txt' -print0 | xargs -0 chmod a-wx
diff --git a/packages/Makefile.buildlayout b/packages/Makefile.buildlayout
index 32500ae9..12df9df5 100644
--- a/packages/Makefile.buildlayout
+++ b/packages/Makefile.buildlayout
@@ -65,10 +65,10 @@ endif
# sources
ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTENSIONS_SRC = $(SRC_ROOT_DIR)/extensions
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
@@ -130,7 +130,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
# release version for this distro
-PACKAGE_VERSION = extended-RC4
+PACKAGE_VERSION = extended-RC5
PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
diff --git a/packages/TODO b/packages/TODO
index 204e24ac..6544f838 100644
--- a/packages/TODO
+++ b/packages/TODO
@@ -1,9 +1,8 @@
-- fix scripts/checkout...sh. It doesn't cvs co into the newly created pure-data folder
-
-- add packages/win32_inno/Makefile to cvs on winky
+- move darwin_app_perms to here and make generic prerelease_clean target which
+ is called separately
-- menu_openhtml on Win32 with rundll should be able to open other filetypes like open on MACOSX.
+- fix scripts/checkout...sh. It doesn't cvs co into the newly created pure-data folder
- rename "applications" to "examples"
@@ -11,17 +10,12 @@
- On GNU/Linux, figure out how to deal with build/extra vs. build/lib/pd/extra
-- make loaderHEX functions follow Pd standart of object_setup() rather than
- setup_object()
-
- 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.
-- document libdir format
-
- add GRIPD for Anders
- add reg keys for Martin Dupras
@@ -30,3 +24,17 @@
- make standard targets: distclean (*~, etc.), installdirs (make just the
dirs), uninstall instead of install_clean
+
+- help menu
+
+ - 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)
+
+ - port to Linux/Windows
+
+- Preferences
+
+ - look at BBogart's LML http://www.ekran.org/ben/research/lml/lml-v0.1-TEST8-osx.tgz
diff --git a/packages/darwin_app/Info.plist.in b/packages/darwin_app/Info.plist.in
index d2a4201a..4450e8d6 100644
--- a/packages/darwin_app/Info.plist.in
+++ b/packages/darwin_app/Info.plist.in
@@ -9,7 +9,8 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
- <string>PD_APP_NAME</string>
+ <string>pd</string>
+ <string>pat</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>pd-file.icns</string>
@@ -22,7 +23,7 @@
<key>CFBundleExecutable</key>
<string>Pd</string>
<key>CFBundleIdentifier</key>
- <string>org.puredata.pd</string>
+ <string>org.puredata.pd.wish</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile
index 9ba57465..2aa69bf0 100644
--- a/packages/darwin_app/Makefile
+++ b/packages/darwin_app/Makefile
@@ -35,7 +35,7 @@ DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
install: darwin_app
#------------------------------------------------------------------------------#
-darwin_app: darwin_app_core extended_app_install rez_install
+darwin_app: darwin_app_core extended_app_install darwin_app_doc_format rez_install
@echo " "
@echo "Pd.app build succeeded!"
@@ -43,7 +43,7 @@ darwin_app: darwin_app_core extended_app_install rez_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 $(BUILD_BASE)/Pd.app
-extended_app_install: extended_install darwin_app_noncvs darwin_app_doc_format
+extended_app_install: extended_install
#------------------------------------------------------------------------------#
@@ -68,7 +68,7 @@ darwin_app_wrapper: Info.plist
install -m0644 -p Info.plist "$(PD_APP_CONTENTS)"
install -m0644 -p *.icns "$(PD_APP_CONTENTS)/Resources"
mv "$(PD_APP_CONTENTS)/MacOS/Wish Shell" \
- "$(PD_APP_CONTENTS)/MacOS/$(PD_APP_NAME)"
+ "$(PD_APP_CONTENTS)/MacOS/Pd"
# diskutil eject /Volumes/$(TCLTK)
@@ -107,6 +107,7 @@ darwin_app_doc_format:
cd $(DOCS_DEST) && \
sed -i.bak 's/^\(\#N canvas [0-9]* [0-9]* [0-9]* [0-9]*\) 12/\1 10/' \
*/*.pd */*/*.pd */*/*/*.pd
+ find $(INSTALL_PREFIX) -name '*.pd.bak' -delete
#==============================================================================#
#
@@ -120,19 +121,7 @@ extended_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_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: darwin_app_externals_standard darwin_app_externals_c++
#------------------------------------------------------------------------------#
@@ -270,24 +259,10 @@ darwin_app_externals_c++:
# gem2pdp
# cd $(EXTERNALS_SRC)/gem2pdp && $(MAKE) -f Makefile.darwin
# install -p -m0444 $(EXTERNALS_SRC)/gem2pdp/*.pd_darwin $(OBJECTS_DEST)
-#----------------------------------------------------------------------------
-# GridFlow
-# cd ../../gridflow && ./configure && $(MAKE)
-darwin_app_noncvs:
- test -d noncvs/doc/5.reference && \
- 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 \
- $(APPLICATIONS_DEST)
-
darwin_app_perms:
- chmod a-x $(DOCS_DEST)/*/*.pd $(DOCS_DEST)/*/*/*.pd $(DOCS_DEST)/*/*/*/*.pd
chmod -R a-w $(DOCS_DEST)
-# serendiPd shared patch
- test -d $(APPLICATIONS_DEST)/serendipd && \
- chmod a+w $(APPLICATIONS_DEST)/serendipd/*shared_patch.pd
DMG_NAME = $(PACKAGE_NAME)
dmg: darwin_app_perms
@@ -299,8 +274,7 @@ dmg: darwin_app_perms
cd $(CWD) && /bin/sh mkdmg "$(DMG_NAME)"
-clean: darwin_app_clean darwin_app_externals_standard_clean \
- darwin_app_externals_gem_clean darwin_app_externals_flext_clean \
+clean: darwin_app_clean darwin_app_externals_flext_clean \
cd $(PACKAGES_SRC) && make clean
-rm Info.plist
@@ -312,7 +286,7 @@ darwin_app_clean:
-darwin_app_externals_gem_clean:
+
cd $(GEM_SRC)/Gem && xcodebuild clean
darwin_app_externals_flext_clean:
@@ -331,6 +305,22 @@ darwin_app_externals_flext_clean:
#
#==============================================================================#
+darwin_app_noncvs:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(PACKAGES_SRC) && make noncvs_install"
+ cd $(PACKAGES_SRC) && make $(DEST_PATHS) noncvs_install
+
+darwin_app_externals_gem_clean:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(PACKAGES_SRC) && make gem_clean"
+
+darwin_app_externals_gem:
+ @echo " "
+ @echo "Deprecated!!"
+ @echo "cd $(PACKAGES_SRC) && make gem_install"
+
darwin_app_externals_standard_clean:
@echo " "
@echo "Deprecated!!"
diff --git a/packages/darwin_app/TODO b/packages/darwin_app/TODO
index a64c8665..38bc6a39 100644
--- a/packages/darwin_app/TODO
+++ b/packages/darwin_app/TODO
@@ -3,18 +3,11 @@
- in post-clean, rm *.bak
-- make Info.plist.in template and have the Makefile create Info.plist
-
-- check to make sure that Rez mac.r is working in Makefile
-
- make Pd open a new window when its launched to workaround the bug where the
menus don't work until a window is opened.
- otool dylib help: http://qin.laya.com/tech_coding_help/dylib_linking.html
-- add symbolic link for flext
- (cd Pd.app/Contents/Resources/extra && ln -s . lib)
-
- 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..."
- review permissions so that you can build on top on existing builds
@@ -55,7 +48,7 @@ http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles
- make Cmd-click work like Ctrl-click
- write script to convert from -DMACOSX to -D__APPLE__ where ever possible (check out
- __gnu_linux__ while I am at it) and submit to miller
+ __gnu_linux__ and WIN32 while I am at it) and submit to miller
- 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
diff --git a/packages/patches/darwin/darwin_dlopen.patch b/packages/patches/darwin/darwin_dlopen.patch
new file mode 100644
index 00000000..a93ef7ed
--- /dev/null
+++ b/packages/patches/darwin/darwin_dlopen.patch
@@ -0,0 +1,65 @@
+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 26 Nov 2005 00:27:11 -0000
+@@ -2,6 +2,9 @@
+ * For information on usage and redistribution, and for a DISCLAIMER OF ALL
+ * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
+
++#ifdef __APPLE__
++#define DL_OPEN
++#endif
+ #ifdef DL_OPEN
+ #include <dlfcn.h>
+ #endif
+@@ -13,7 +16,7 @@
+ #include <io.h>
+ #include <windows.h>
+ #endif
+-#ifdef MACOSX
++#ifdef MACOSX10.2
+ #include <mach-o/dyld.h>
+ #endif
+ #include <string.h>
+@@ -90,7 +93,7 @@
+ if (lastdot = strrchr(nameptr, '.'))
+ *lastdot = 0;
+
+-#ifdef MACOSX
++#ifdef MACOSX10.2
+ strcpy(symname, "_");
+ strcat(symname, nameptr);
+ #else
+@@ -122,7 +125,7 @@
+ }
+ makeout = (t_xxx)GetProcAddress(ntdll, symname);
+ #endif
+-#ifdef MACOSX
++#ifdef MACOSX10.2
+ {
+ NSObjectFileImage image;
+ void *ret;
+@@ -134,8 +137,18 @@
+ return 0;
+ }
+ ret = NSLinkModule( image, filename,
+- NSLINKMODULE_OPTION_BINDNOW + NSLINKMODULE_OPTION_PRIVATE);
+-
++ NSLINKMODULE_OPTION_BINDNOW |
++ //NSLINKMODULE_OPTION_PRIVATE |
++ NSLINKMODULE_OPTION_RETURN_ON_ERROR);
++
++ if (ret == NULL) {
++ int err;
++ const char *fname, *errt;
++ NSLinkEditErrors c;
++ NSLinkEditError(&c, &err, &fname, &errt);
++ post("link error %d %s %s", err, fname, errt);
++ return 0;
++ }
+ s = NSLookupSymbolInModule(ret, symname);
+
+ if (s)
diff --git a/packages/patches/extended-help-menu.patch b/packages/patches/extended-help-menu.patch
index 0cabfeaa..192374a5 100644
--- a/packages/patches/extended-help-menu.patch
+++ b/packages/patches/extended-help-menu.patch
@@ -1,38 +1,136 @@
Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
---- pd-0.38-4/src/u_main.tk Sun Feb 20 20:03:36 2005
-+++ u_main.tk Wed Nov 16 00:33:02 2005
-@@ -374,22 +374,41 @@
- set help_directory $pd_guidir/doc
- set help_top_directory $pd_guidir/doc
-
-+################## generate_menu_doc_link #########################
-+# This procedure generates a temporary mirror of the documentation directory
-+# in /tmp so that it can be opened from the Help->Pure Documentation... menu
-+# under Mac OS X. It is meant to be run at startup.
-+# Damn you Apple and your "hide stuff from the user" "features".
-+# <hans@at.or.at.>
-+proc generate_menu_doc_link {} {
-+ global help_directory
-+
-+ regsub -all "/" $help_directory "." help_directory_alias
-+ set help_directory_alias /tmp/$help_directory_alias
-+ set help_directory_tmpdir $help_directory_alias/doc
-+ # if something other than a directory exists, delete it
-+ if [file exists $help_directory_alias] {
-+ file delete -force -- $help_directory_alias
-+ }
-+ if { ! [ file isdirectory $help_directory_tmpdir ] } {
-+ file mkdir $help_directory_tmpdir
-+ }
-+ foreach file [ lsort [ glob -dir $help_directory * ] ] {
-+ regsub -all ".*/" $file "" link_file_name
-+ file link -symbolic [file join $help_directory_tmpdir $link_file_name ] $file
-+ }
-+ set help_directory $help_directory_tmpdir
-+}
+retrieving revision 1.7.2.4
+diff -u -w -r1.7.2.4 u_main.tk
+--- u_main.tk 21 Feb 2005 04:20:20 -0000 1.7.2.4
++++ u_main.tk 25 Nov 2005 22:47:06 -0000
+@@ -24,6 +24,14 @@
+ # Tearoff is set to true by default:
+ set pd_tearoff 1
+
++
++# a menu on the main menubar named $whatever.help while be treated
++# as a special menu with specific behaviors on different platforms.
++# See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
++# this is the default name for the Help menu
++set help_menu_name "help"
++
++#################### init for Windows ####################
+ if {$pd_nt == 1} {
+ global pd_guidir
+ global pd_tearoff
+@@ -32,8 +40,12 @@
+ set pd_guidir $pd_gui3/..
+ load $pd_guidir/bin/pdtcl.dll
+ set pd_tearoff 1
++ set help_top_directory $pd_guidir/doc
++ # init last help directory browsed
++ set help_directory $help_top_directory
+ }
+
++##################### init for Mac OS X/Darwin ####################
+ if {$pd_nt == 2} {
+ # turn on James Tittle II's fast drawing (wait until I can test this...):
+ # set tk::mac::useCGDrawing 1
+@@ -43,6 +55,39 @@
+ set pd_guidir $pd_gui2/..
+ load $pd_guidir/bin/pdtcl
+ set pd_tearoff 0
++ set help_top_directory $pd_guidir/doc
++
++
++ # This procedure generates a temporary mirror of the documentation directory
++ # in /tmp so that it can be opened from the Help->Pure Documentation... menu
++ # under Mac OS X. It is meant to be run at startup.
++ # Damn you Apple and your hide-stuff-from-the-user "features".
++ # <hans@at.or.at.>
++ regsub -all "/" $help_top_directory "." help_directory_alias
++ set help_directory_alias /tmp/.pd_help_directory_alias-$help_directory_alias
++ set help_directory_tmpdir $help_directory_alias/doc
++ # if something other than a directory exists, delete it
++ if [file exists $help_directory_alias] {
++ file delete -force -- $help_directory_alias
++ }
++ if { ! [ file isdirectory $help_directory_tmpdir ] } {
++ file mkdir $help_directory_tmpdir
++ }
++ foreach file [ lsort [ glob -dir $help_top_directory * ] ] {
++ regsub -all ".*/" $file "" link_file_name
++ file link -symbolic $help_directory_tmpdir/$link_file_name $file
++ }
++ # init last help directory browsed
++ set help_directory $help_directory_tmpdir
++
++
++ # a menu on the main menubar named "$whatever.help" while be treated
++ # as a special menu with specific behaviors on different platforms.
++ # See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
++ # Apple doesn't allow cascading menus in their Help so I had to call this
++ # one "docs" <hans@at.or.at>
++ set help_menu_name "docs"
++
+
+ # tk::mac::OpenDocument is called with the filenames put into the
+ # var args whenever docs are either dropped on the Pd.app icon or
+@@ -60,14 +105,22 @@
+ # hack so you can easily test-run this script in linux... define pd_guidir
+ # (which is normally defined at startup in pd under linux...)
+
++#################### init for GNU/Linux ####################
+ if {$pd_nt == 0} {
+ if {! [info exists pd_guidir]} {
+ global pd_guidir
+ puts stderr {setting pd_guidir to '.'}
+ set pd_guidir .
++ set help_top_directory $pd_guidir/doc
++ # init last help directory browsed
++ set help_directory $help_top_directory
+ }
+ }
+
++#################### init for all platforms ####################
+
++
++
+ # it's unfortunate but we seem to have to turn off global bindings
+ # for Text objects to get control-s and control-t to do what we want for
+ # "text" dialogs below. Also we have to get rid of tab's changing the focus.
+@@ -95,25 +148,15 @@
+ if {$pd_nt != 2} {
+ .mbar add cascade -label "Windows" -menu .mbar.windows
+ .mbar add cascade -label "Media" -menu .mbar.audio
+-# a menu on the main menubar named $whatever.help while be treated
+-# as a special menu with specific behaviors on different platforms.
+-# See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
+- menu .mbar.help -tearoff $pd_tearoff
+- .mbar add cascade -label "Help" -menu .mbar.help
+ } else {
+ menu .mbar.apple -tearoff 0
+ .mbar add cascade -label "Apple" -menu .mbar.apple
+ # arrange menus according to Apple HIG
+ .mbar add cascade -label "Media" -menu .mbar.audio
+ .mbar add cascade -label "Window" -menu .mbar.windows
+-# a menu on the main menubar named "$whatever.help" while be treated
+-# as a special menu with specific behaviors on different platforms.
+-# See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
+-# Apple doesn't allow cascading menus in their Help so I had to call this
+-# one $mbar.docs # <hans@at.or.at>
+- menu .mbar.docs -tearoff $pd_tearoff
+- .mbar add cascade -label "Help" -menu .mbar.docs
+ }
++menu .mbar.$help_menu_name -tearoff $pd_tearoff
++.mbar add cascade -label "Help" -menu .mbar.$help_menu_name
+
+ set ctrls_audio_on 0
+ set ctrls_meter_on 0
+@@ -371,25 +414,15 @@
+ }
+ }
+
+-set help_directory $pd_guidir/doc
+-set help_top_directory $pd_guidir/doc
+-
+################## menu_documentation #########################
proc menu_documentation {} {
global help_directory
@@ -47,13 +145,14 @@ RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
- -initialdir /tmp/pd-documentation]
- } else {
set filename [tk_getOpenFile -defaultextension .pd \
- -filetypes { {{documentation} {.pd .txt .htm}} } \
+- -filetypes { {{documentation} {.pd .txt .htm}} } \
++ -filetypes { {{documentation} {.pd .txt .htm .html}} } \
-initialdir $help_directory]
- }
if {$filename != ""} {
if {[string first .txt $filename] >= 0} {
menu_opentext $filename
-@@ -411,35 +430,57 @@
+@@ -411,42 +444,69 @@
set dirname $pd_guidir/$subdir
@@ -73,45 +172,47 @@ RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
- pd [concat pd open [pdtk_enquote $basename] \
- [pdtk_enquote $dirname] \;]
+ menu_openhtml $dirname/$basename
-+ }
}
}
++}
++
-proc doc_submenu {helpmenu subdir} {
- global help_top_directory pd_tearoff
--
-- set menudir $help_top_directory/$subdir
-
-- regsub -all "\\\." $subdir "" submenu
+################## menu_doc_submenu #########################
-
++
+# this is a recursive function to generation a nested menu in the help menu
+# which shows the complete contents of the doc directory <hans@at.or.at>
+proc menu_doc_submenu {helpmenu base_dir sub_dir} {
-+ global pd_tearoff
-+ global help_top_directory
-+
-+ set menu_dir $help_top_directory/$base_dir/$sub_dir
-+
-+ foreach file [ lsort [ glob -nocomplain -dir $menu_dir * ] ] {
-+ set file_type [file type $file]
-+ regsub {.*/(.*$)} $file {\1} file_name
-+ # If links are going to be used then there needs to be a check to see if each
-+ # link might cause this function to recurse forever <hans@at.or.at>
-+ # if { $file_type == "link"} {
-+ # puts stderr "LINK: $file"
-+ # }
-+ if { $file_type == "file" } {
-+ # only put certain file types on the menu
-+ 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"
-+ }
-+ } elseif { $file_type == "directory" } {
-+ regsub -all "\\\." [string tolower $file_name] "" submenu
++ global pd_tearoff
++ global help_top_directory
+
+- set menudir $help_top_directory/$subdir
++ set menu_dir $help_top_directory/$base_dir/$sub_dir
+
+- regsub -all "\\\." $subdir "" submenu
++ catch {
++ foreach file [ lsort [ glob -nocomplain -dir $menu_dir * ] ] {
++ set file_type [file type $file]
++ regsub {.*/(.*$)} $file {\1} file_name
+
++ # If links are going to be used then there needs to be a check to
++ # see if each link might cause this function to recurse forever
++ # <hans@at.or.at>
++ if { $file_type == "link"} {
++ puts stderr "Warning doc_submenu found a link: $file"
++ }
++ if { $file_type == "file" } {
++ # only put certain file types on the menu
++ 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"
++ }
++ } elseif { $file_type == "directory" } {
++ regsub -all "\\\." [string tolower $file_name] "" submenu
menu $helpmenu.$submenu -tearoff $pd_tearoff
- regsub -all "\\\." $subdir " " submenuname
-+ regsub -all "\\\." $file_name " " submenuname
++ regsub -all "\\\." $file_name " " submenuname
$helpmenu add cascade -label $submenuname \
-menu $helpmenu.$submenu
-
@@ -122,34 +223,34 @@ RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
- regsub {.*/(.*\..+$)} $file {\1} filename
- $helpmenu.$submenu add command -label $filename \
- -command "menu_doc_open doc/$subdir $filename"
-+ menu_doc_submenu $helpmenu.$submenu $base_dir/$sub_dir [file tail $file]
-+ }
++ menu_doc_submenu $helpmenu.$submenu $base_dir/$sub_dir \
++ [file tail $file]
++ }
++ }
}
}
-@@ -494,7 +535,18 @@
+ ############# routine to add media, help, and apple menu items ###############
+
+ proc menu_addstd {mbar} {
+- global pd_apilist pd_nt pd_tearoff
++ global pd_apilist pd_nt pd_tearoff help_menu_name
+ # the "Audio" menu
+ $mbar.audio add command -label {audio ON} -accelerator [accel_munge "Ctrl+/"] \
+ -command {menu_audio 1}
+@@ -494,30 +554,15 @@
# the "Help" menu
- if {$pd_nt != 2} {
-+ if {$pd_nt == 2} {
-+# Apple doesn't allow cascading menus in their Help so I had to call this
-+# one "docs" <hans@at.or.at>
-+ generate_menu_doc_link
-+ $mbar.docs add command -label {Browse Documentation...} \
-+ -command {menu_documentation}
-+ # the help menu only really works well on Mac OS X <hans@at.or.at>
-+ $mbar.docs add command -label {Pd HTML Manual...} \
-+ -command {menu_doc_open doc/1.manual index.htm}
-+ $mbar.docs add separator
-+ menu_doc_submenu $mbar.docs "." "."
-+ } else {
- # a menu on the main menubar named "$whatever.help" while be treated
- # as a special menu with specific behaviors on different platforms.
- # See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
-@@ -502,22 +554,9 @@
- -command {menu_doc_open doc/1.manual 1.introduction.txt}
- $mbar.help add command -label {Pure Documentation...} \
+-# a menu on the main menubar named "$whatever.help" while be treated
+-# as a special menu with specific behaviors on different platforms.
+-# See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
+- $mbar.help add command -label {About Pd} \
+- -command {menu_doc_open doc/1.manual 1.introduction.txt}
+- $mbar.help add command -label {Pure Documentation...} \
++ puts stderr "Starting Menu crap"
++ $mbar.$help_menu_name add command -label {Browse Documentation...} \
-command {menu_documentation}
- # add menu items for each section instead of using Pd patches
- $mbar.help add separator
@@ -161,14 +262,43 @@ RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
- }
-
- $mbar.$helpmenuname add command -label {1 manual...} \
-+ $mbar.help add command -label {1 manual...} \
++ # the help menu only really works well on Mac OS X <hans@at.or.at>
++ $mbar.$help_menu_name add command -label {Pd HTML Manual...} \
-command {menu_doc_open doc/1.manual index.htm}
- doc_submenu $mbar.$helpmenuname 2.control.examples
- doc_submenu $mbar.$helpmenuname 3.audio.examples
- doc_submenu $mbar.$helpmenuname 4.fft.examples
- doc_submenu $mbar.$helpmenuname 5.reference
- doc_submenu $mbar.$helpmenuname 6.externs
-+ }
++ $mbar.$help_menu_name add separator
++ menu_doc_submenu $mbar.$help_menu_name "." "."
++ puts stderr "Finishing Menu crap"
}
#################### the "File" menu for the Pd window ##############
+@@ -820,6 +865,7 @@
+ global pd_opendir
+ global pd_tearoff
+ global pd_nt
++ global help_menu_name
+
+ toplevel $name -menu $name.m
+ # puts stderr [concat geometry: $geometry]
+@@ -1078,13 +1124,11 @@
+ # as a special menu with specific behaviors on different platforms.
+ # See SPECIAL MENUS IN MENUBARS http://www.tcl.tk/man/tcl8.4/TkCmd/menu.htm
+ if {$pd_nt != 2} {
+- menu $name.m.help -tearoff $pd_tearoff
+- $name.m add cascade -label Help -menu $name.m.help
++ menu $name.m.$help_menu_name -tearoff $pd_tearoff
++ $name.m add cascade -label Help -menu $name.m.$help_menu_name
+ } else {
+- # Apple doesn't allow cascading menus in their Help
+- # so I had to call this one "docs". <hans@at.or.at>
+- menu $name.m.docs -tearoff $pd_tearoff
+- $name.m add cascade -label Help -menu $name.m.docs
++ menu $name.m.$help_menu_name -tearoff $pd_tearoff
++ $name.m add cascade -label Help -menu $name.m.$help_menu_name
+ }
+
+ menu_addstd $name.m
diff --git a/packages/win32_inno/TODO b/packages/win32_inno/TODO
index f85f3b6b..278207ee 100644
--- a/packages/win32_inno/TODO
+++ b/packages/win32_inno/TODO
@@ -1,4 +1,6 @@
+- add SMlib from email from Anders
+
- add Gem to noncvs
- get Pd compiling on MinGW:. From Carmen: