aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-06-03 20:28:25 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-06-03 20:28:25 +0000
commitee4b6fc5eacb14be2a2ce5cf15e06ff1d377a891 (patch)
tree64b11b92c437e377136bb5bade97acf94f4d499a
parentfee3dda9c6fd4e107747dcc14f29e60160837e06 (diff)
removed jack compilation; added lots of abstractions and objects writen in Pd
svn path=/trunk/; revision=3110
-rw-r--r--packages/darwin_app/Makefile115
-rw-r--r--packages/darwin_app/README17
-rw-r--r--packages/darwin_app/TODO10
-rw-r--r--packages/darwin_app/patches/darwin_linking_fixes.patch99
-rw-r--r--packages/darwin_app/patches/extended-help-menu.patch42
5 files changed, 242 insertions, 41 deletions
diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile
index b7a633b6..d5c40245 100644
--- a/packages/darwin_app/Makefile
+++ b/packages/darwin_app/Makefile
@@ -27,11 +27,11 @@ PWD = $(shell pwd)
PD_MAJOR_VERSION = $(shell /usr/bin/grep 'Pd version' ../../pd/src/s_main.c | /usr/bin/cut -d '\\' -f 1 | /usr/bin/cut -d ' ' -f 6 | /usr/bin/cut -d '.' -f 1)
PD_MINOR_VERSION = $(shell /usr/bin/grep 'Pd version' ../../pd/src/s_main.c | /usr/bin/cut -d '\\' -f 1 | /usr/bin/cut -d ' ' -f 6 | /usr/bin/cut -d '.' -f 2)
PD_BUGFIX_VERSION = $(shell /usr/bin/grep 'Pd version' ../../pd/src/s_main.c | /usr/bin/cut -d '\\' -f 1 | /usr/bin/cut -d ' ' -f 6 | /usr/bin/cut -d '.' -f 3)
-PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
+PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION)-$(PD_BUGFIX_VERSION)
# release version for this distro
-PACKAGE_VERSION = hcs0
-PACKAGE_NAME = pd-$(PD_VERSION)-$(PACKAGE_VERSION)
+PACKAGE_VERSION = extended-RC1
+PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)
DMG_NAME = $(PACKAGE_NAME)
# in retrospect, I think this is a bad way to do it.
@@ -59,7 +59,7 @@ GEM_VERSION = $(shell grep "GEM_VERSION" ../../Gem/src/Base/GemVersion.h | cut -
MAXLIB_VERSION = $(shell grep "define VERSION" ../../externals/maxlib/maxlib.c | cut -d '"' -f 2)
-OSC_VERSION = $(shell grep "define VERSION" ../../externals/OSCx/OSC.c | cut -d '"' -f 2)
+OSC_VERSION = $(shell grep "define VERSION" ../../externals/OSCx/src/OSC.c | cut -d '"' -f 2)
PDP_VERSION = $(shell grep PDP_VERSION= ../../externals/pdp/configure | cut -d '=' -f 2)
@@ -79,7 +79,7 @@ darwin_app: darwin_app_wrapper darwin_app_core darwin_prebuilt_app
# just want to fill it with goodies from CVS. To do so, place your
# Pd.app in installroot/Applications/Pd.app
darwin_prebuilt_app: darwin_app_externals darwin_app_docs \
- darwin_app_abstractions darwin_app_doc_format
+ darwin_app_abstractions darwin_app_doc_format darwin_app_noncvs
darwin_app_license:
# generate HTML version of License
@@ -145,7 +145,7 @@ darwin_app_readme:
# 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:
- -hdiutil mount $(TCLTK).dmg
+ test -d /Volumes/$(TCLTK) || hdiutil mount $(TCLTK).dmg
# copy Wish Shell.app from default install location
# note: use the "standalone" Wish shell to make a "standalone" pd app
install -d "$(DESTDIR)$(PD_APP_CONTENTS)/MacOS"
@@ -172,14 +172,13 @@ darwin_patch_pd:
# cd ../../pd/src/ && patch -p0 < ../../packages/darwin_app/patches/socket.patch
# cd ../../pd/src/ && patch -p0 < ../../packages/darwin_app/patches/u_main.tk.patch
cd ../../pd/src/ && patch -p0 < ../../packages/darwin_app/patches/darwin_build-0.38.patch
+ cd ../../pd/src/ && patch -p0 < ../../packages/darwin_app/patches/extended-help-menu.patch
rm ../../pd/src/configure ../../pd/src/makefile
cd ../../pd/src/ && autoconf
darwin_app_core: darwin_app_wrapper
# pd core
-# cd ../../pd/src/ && \
-# ./configure --enable-jack --prefix=$(INSTALL_PREFIX) && make
- cd ../../pd/src/ && ./configure --enable-jack && make
+ cd ../../pd/src/ && ./configure && make
cp -Rp ../../pd/bin ../../pd/doc ../../pd/extra ../../pd/man \
$(PD_FILE_ROOT)
# AppMain.tcl
@@ -241,13 +240,50 @@ darwin_app_abstractions:
#----------------------------------------------------------------------------
# ABSTRACTIONS
install -d $(ABSTRACTIONS_DIR)
-# creb
- install -p -m0444 ../../externals/creb/abs/*.pd $(ABSTRACTIONS_DIR)
- cd $(ABSTRACTIONS_DIR) && rm -f count.pd
- install -d $(ABSTRACTIONS_DIR)/creb
- install -p -m0444 ../../externals/creb/doc/examples/*.* $(ABSTRACTIONS_DIR)/creb
+# audionerd
+ cp -Rp ../../abstractions/audionerd $(ABSTRACTIONS_DIR)
+# footils
+ cp -Rp ../../abstractions/footils $(ABSTRACTIONS_DIR)
+# keyboardkeys
+ cp -Rp ../../abstractions/keyboardkeys $(ABSTRACTIONS_DIR)
+#----------------------------------------------------------------------------
+# EXTERNALS written in Pd
+# RRADical
+ cp -Rp ../../abstractions/rradical $(EXTERNALS_DIR)
+ cp -Rp ../../abstractions/rradical/doc $(HELP_DIR)/rradical
+# footils
+ install -p ../../abstractions/footils/softtakeover/sto-help.pd \
+ $(HELP_DIR)/5.reference
+ install -p ../../abstractions/footils/softtakeover/sto.pd $(EXTERNALS_DIR)
+# fft_convolution
+ install -p ../../abstractions/fft_convolution/*-help.pd \
+ $(HELP_DIR)/5.reference
+ install -p -m0644 $(shell ls -1 ../../abstractions/fft_convolution/*.pd | \
+ grep -v '\-help.pd') $(EXTERNALS_DIR)
+# La-kitchen
+ install -d $(HELP_DIR)/5.reference/La-kitchen
+ install -p ../../abstractions/La-kitchen/*-help.pd \
+ $(HELP_DIR)/5.reference/La-kitchen
+ install -d $(EXTERNALS_DIR)/La-kitchen
+ install -p -m0644 $(shell ls -1 ../../abstractions/La-kitchen/*.pd | \
+ grep -v '\-help.pd') $(EXTERNALS_DIR)/La-kitchen
+# nusmuk
+ install -d $(HELP_DIR)/5.reference/nusmuk
+ install -p ../../abstractions/nusmuk/*-help.pd \
+ $(HELP_DIR)/5.reference/nusmuk
+ install -d $(EXTERNALS_DIR)/nusmuk
+ install -p -m0644 $(shell ls -1 ../../abstractions/nusmuk/*.pd | \
+ grep -v '\-help.pd') $(EXTERNALS_DIR)/nusmuk
+# timestretch~
+ install -p ../../abstractions/timestretch/*-help.pd \
+ $(HELP_DIR)/5.reference
+ install -p -m0644 $(shell ls -1 ../../abstractions/timestretch/*.pd | \
+ grep -v '\-help.pd') $(EXTERNALS_DIR)
+# vadsr~
+ install -p ../../abstractions/vadsr~/vadsr-test.pd \
+ $(HELP_DIR)/5.reference/vadsr~-help.pd
+ install -p ../../abstractions/vadsr~/vadsr~.pd $(EXTERNALS_DIR)
-# cp -Rf footils timestretch vadsr~ $(ABSTRACTIONS_DIR)
darwin_app_externals: darwin_app_externals_standard darwin_app_externals_c++
#darwin_app_externals: darwin_app_externals_flext darwin_app_externals_standard darwin_app_externals_c++ darwin_app_externals_gem
@@ -339,6 +375,12 @@ darwin_app_externals_standard:
-cd ../../externals/build/darwin && make -k
install -d $(EXTERNALS_DIR)
install -p -m0644 ../../externals/build/darwin/*.pd_darwin $(EXTERNALS_DIR)
+# creb
+ install -d $(EXTERNALS_DIR)/creb
+ install -p -m0644 ../../externals/creb/abs/*.pd $(EXTERNALS_DIR)/creb
+ install -d $(HELP_DIR)/5.reference/creb
+ install -p -m0644 ../../externals/creb/doc/examples/*.* \
+ $(HELP_DIR)/5.reference/creb
#----------------------------------------------------------------------------
# GEM
install -p -m0644 ../../Gem/help/*.* $(HELP_DIR)/5.reference
@@ -349,17 +391,17 @@ darwin_app_externals_standard:
cp -Rfp ../../Gem/examples/*.* ../../Gem/examples/data $(HELP_DIR)/gem
#----------------------------------------------------------------------------
# hcs
- install -p -m0444 $(shell ls -1 ../../externals/hcs/*.pd | \
+ install -p -m0644 $(shell ls -1 ../../externals/hcs/*.pd | \
grep -v '\-help.pd') $(EXTERNALS_DIR)
# hid
cd ../../externals/hcs/hid && make
- install -p -m0444 ../../externals/hcs/hid/hid.pd_darwin $(EXTERNALS_DIR)
- install -p -m0444 $(shell ls -1 ../../externals/hcs/hid/*.pd | \
+ install -p -m0644 ../../externals/hcs/hid/hid.pd_darwin $(EXTERNALS_DIR)
+ install -p -m0644 $(shell ls -1 ../../externals/hcs/hid/*.pd | \
grep -v '\-help.pd'| grep -v '\-list.pd') $(EXTERNALS_DIR)
# general
- install -p -m0444 ../../externals/hcs/general/*.pd $(EXTERNALS_DIR)
+ install -p -m0644 ../../externals/hcs/general/*.pd $(EXTERNALS_DIR)
# pan
- install -p -m0444 $(shell ls -1 ../../externals/hcs/pan/*.pd | \
+ install -p -m0644 $(shell ls -1 ../../externals/hcs/pan/*.pd | \
grep -v '\-help.pd') $(EXTERNALS_DIR)
#----------------------------------------------------------------------------
# IEMlib
@@ -476,23 +518,33 @@ darwin_app_externals_c++:
## sudo chown -R root:staff $(UNIX_PACKAGE_NAME).pkg/Contents/Resources
-#darwin_unix_pkg_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/README.txt`</p>" >> $(WELCOME_FILE)
-# echo "</FONT>" >> $(WELCOME_FILE)
-# echo "</body></html>" >> $(WELCOME_FILE)
+darwin_unix_pkg_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/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/*.* $(HELP_DIR)/5.reference
+ test -d noncvs/extra && \
+ install -p -m0644 noncvs/extra/*.* $(EXTERNALS_DIR)
+ cp -Rp noncvs/doc/serendipd $(HELP_DIR)
darwin_app_perms:
chmod a-x $(HELP_DIR)/*/*.pd $(HELP_DIR)/*/*/*.pd $(HELP_DIR)/*/*/*/*.pd
chmod -R a-w $(HELP_DIR)
+# serendiPd shared patch
+ chmod a+w $(HELP_DIR)/serendipd/*shared_patch.pd
-dmg: darwin_app_readme darwin_unix_pkg_welcome darwin_app_license
+dmg: darwin_app_readme darwin_unix_pkg_welcome darwin_app_license darwin_app_perms
install -d "$(DMG_NAME)"
- cd $(DESTDIR)/Applications && mv $(PD_APP_NAME).app "../../$(DMG_NAME)"
+ cd $(DESTDIR)/Applications && mv $(PD_APP_NAME).app \
+ "../../$(DMG_NAME)/$(DMG_NAME).app"
install -p -m0444 ../../pd/LICENSE.txt "$(DMG_NAME)/PD LICENSE.txt"
install -p -m0444 $(LICENSE_FILE) $(README_FILE) \
$(WELCOME_FILE) $(LICENSE_FILE) "$(DMG_NAME)"
@@ -509,6 +561,7 @@ darwin_app_clean:
darwin_unpatch_pd:
cd ../../pd/src/ && patch -R -p0 < ../../packages/darwin_app/patches/darwin_build-0.38.patch
+ cd ../../pd/src/ && patch -R -p0 < ../../packages/darwin_app/patches/extended-help-menu.patch
darwin_app_externals_standard_clean:
cd ../../externals/build/darwin && make clean
diff --git a/packages/darwin_app/README b/packages/darwin_app/README
index eb3c60bf..12717121 100644
--- a/packages/darwin_app/README
+++ b/packages/darwin_app/README
@@ -4,8 +4,8 @@
Since currently, only Miller has commit permissions to the 'pd' section of the
CVS, the fixes necessary for building the whole Pd.app are included in
-'packages/darwin_app/patches'. The necessary patches are automatically applied
-by 'packages/darwin_app/Makefile' before building the sources in 'pd/src'
+'packages/darwin_app/patches'. The patches can be applied by running "make
+darwin_patch_pd" or unpatched using "make darwin_unpatch_pd".
==============================================================================
@@ -20,7 +20,7 @@ Tcl/Tk Standalone .app
1. download TclTkAquaStandalone-8.4.*.dmg from http://tcltkaqua.sourceforge.net/
(I used 8.4.9)
- 2. mount the dmg manually or put TclTkAquaStandalone-8.4.*.dmg in
+ 2. mount the dmg manually, or, put TclTkAquaStandalone-8.4.*.dmg in
packages/darwin_app and it will be automatically mounted
3. the Makefile will find what it needs in the mounted .dmg
@@ -33,6 +33,10 @@ ______________________________
JackOSX
______________________________
+Jack is optional. The current linking method causes the resulting binary to
+require the Jack.framework to start whether or not you are using Jack.
+Ideally with would be fixed...
+
1. download latest JackOSX from http://www.jackosx.com/download.html
(I used version 0.6.1)
2. install the .pkg in the standard location
@@ -46,6 +50,13 @@ You will need all this stuff from CVS:
cvs co doc
cvs co externals
cvs co packages
+
+either get Pd core from CVS:
+ cvs co pd
+
+or untar a tarball:
+ tar xzf pd-0.38-4.src.tar.gz
+ ln -s pd-0.38-4 pd
______________________________
making the Pd.app
diff --git a/packages/darwin_app/TODO b/packages/darwin_app/TODO
index 126fa25c..12ae0cf1 100644
--- a/packages/darwin_app/TODO
+++ b/packages/darwin_app/TODO
@@ -1,4 +1,6 @@
+- fixed Pd.app file associations
+
- 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:
@@ -6,9 +8,6 @@
- make Help menu generator recursive
-- check up on zexy in packages/darwin_app/Makefile and
- externals/build/doc/makefile now that its been added to the build system
-
- follow AppMain.tcl instructions:
http://wiki.tcl.tk/12987
http://www.wordtech-software.com/tcl-bundle-tutorial.html
@@ -39,9 +38,6 @@ http://www.wordtech-software.com/tcl-bundle-tutorial.html
- make Cmd-H and Alt-Cmd-H work when the Alt key is spec'ed
-- write sed script to set help-patch font size to 10 point from 12 point on
- all help patches.
-
- create --enable-cpu and --enable-arch in pd/src/configure.in
- create general optimization flag system
@@ -49,4 +45,4 @@ http://www.wordtech-software.com/tcl-bundle-tutorial.html
- convert from -DMACOSX to -D__APPLE__ where ever possible (check out
__gnu_linux__) while I am at it
-- add context to all patches
+- add context (diff -u) to all patches
diff --git a/packages/darwin_app/patches/darwin_linking_fixes.patch b/packages/darwin_app/patches/darwin_linking_fixes.patch
new file mode 100644
index 00000000..b10edb20
--- /dev/null
+++ b/packages/darwin_app/patches/darwin_linking_fixes.patch
@@ -0,0 +1,99 @@
+Index: configure.in
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/configure.in,v
+retrieving revision 1.8
+diff -r1.8 configure.in
+14a15
+> AC_SUBST(TCLTK_FRAMEWORKS_PATH)
+175a177,178
+>
+>
+212a216,233
+>
+> if test x$jack == "xyes";
+> then
+> LDFLAGS=$LDFLAGS" -lrt -ljack"
+> fi
+> if test x$jack == "xrun";
+> then
+> LDFLAGS=$LDFLAGS" -lrt -ljack"
+> fi
+> fi
+>
+> if test x$jack == "xyes";
+> then
+> LDFLAGS=$LDFLAGS" -lrt -ljack"
+> fi
+> if test x$jack == "xrun";
+> then
+> LDFLAGS=$LDFLAGS" -lrt -ljack"
+242,246c263,281
+< GUINAME="pdtcl"
+< GUIFLAGS="-F../../Frameworks -framework Tcl -framework Tk \
+< -I../../Frameworks/Tk.framework/Versions/Current/Headers \
+< -I../../Frameworks/Tcl.framework/Versions/Current/Headers \
+< -I../../Frameworks/Tcl.framework/Versions/8.4/PrivateHeaders"
+---
+> GUINAME="libPdTcl.dylib"
+>
+> # find the Tcl/Tk Frameworks
+> if test -d "../../Frameworks";
+> then
+> # Miller's location
+> TCLTK_FRAMEWORKS_PATH="../../Frameworks"
+> elif test -d "/Library/Frameworks";
+> then
+> # get it from the default install location
+> TCLTK_FRAMEWORKS_PATH="/Library/Frameworks"
+> else
+> # Panther has Tcl here; Tiger has Tcl and Tk here
+> TCLTK_FRAMEWORKS_PATH="/System/Library/Frameworks"
+> fi
+> GUIFLAGS="-F$TCLTK_FRAMEWORKS_PATH -framework Tcl -framework Tk \
+> -I$TCLTK_FRAMEWORKS_PATH/Tk.framework/Versions/Current/Headers \
+> -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/Current/Headers \
+> -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/8.4/PrivateHeaders"
+258,259c294,297
+< MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK"
+< SYSSRC=$SYSSRC" s_audio_jack.c"
+---
+> fi
+> if test x$jack == "xrun";
+> then
+> LDFLAGS=$LDFLAGS" -framework Jack"
+269d306
+< LDFLAGS=$LDFLAGS" -lrt -ljack"
+275d311
+< LDFLAGS=$LDFLAGS" -lrt -ljack"
+Index: makefile.in
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/makefile.in,v
+retrieving revision 1.6
+diff -r1.6 makefile.in
+100,104c100,110
+< $(BIN_DIR)/pdtcl: $(GOBJ) $(GSRC)
+< cd ../obj; libtool -dynamic -o $(BIN_DIR)/pdtcl $(GOBJ) \
+< ../../Frameworks/Tk.framework/Versions/Current/Tk \
+< ../../Frameworks/Tcl.framework/Versions/Current/Tcl \
+< /usr/lib/libSystem.B.dylib
+---
+> $(BIN_DIR)/libPdTcl.dylib: $(GOBJ) $(GSRC)
+> cd ../obj && $(CC) -dynamiclib -read_only_relocs warning \
+> -o $(BIN_DIR)/libPdTcl.dylib $(GOBJ) \
+> -F@TCLTK_FRAMEWORKS_PATH@ \
+> -framework Tcl -framework Tk -framework System \
+> -Wl,-install_name,@executable_path/../Resources/bin/libPdTcl.dylib
+> install_name_tool -change @TCLTK_FRAMEWORKS_PATH@/Tcl.framework/Versions/8.4/Tcl\
+> @executable_path/../Frameworks/Tcl.framework/Versions/8.4/Tcl \
+> -change @TCLTK_FRAMEWORKS_PATH@/Tk.framework/Versions/8.4/Tk \
+> @executable_path/../Frameworks/Tk.framework/Versions/8.4/Tk \
+> ../bin/libPdTcl.dylib
+Index: u_main.tk
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
+retrieving revision 1.9
+diff -r1.9 u_main.tk
+51c51
+< load $pd_guidir/bin/pdtcl
+---
+> load $pd_guidir/bin/libPdTcl.dylib
diff --git a/packages/darwin_app/patches/extended-help-menu.patch b/packages/darwin_app/patches/extended-help-menu.patch
new file mode 100644
index 00000000..47de8260
--- /dev/null
+++ b/packages/darwin_app/patches/extended-help-menu.patch
@@ -0,0 +1,42 @@
+Index: u_main.tk
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
+retrieving revision 1.9
+diff -u -w -r1.9 u_main.tk
+--- u_main.tk 18 May 2005 04:28:51 -0000 1.9
++++ u_main.tk 23 May 2005 17:18:36 -0000
+@@ -531,6 +531,34 @@
+ doc_submenu $mbar.$helpmenuname 4.fft.examples
+ doc_submenu $mbar.$helpmenuname 5.reference
+ doc_submenu $mbar.$helpmenuname 6.externs
++ $mbar.$helpmenuname add separator
++ doc_submenu $mbar.$helpmenuname 7.stuff/audio-playpen
++ doc_submenu $mbar.$helpmenuname 7.stuff/data-structures
++ doc_submenu $mbar.$helpmenuname 7.stuff/pd-msg
++ doc_submenu $mbar.$helpmenuname 7.stuff/soundfile-tools
++ doc_submenu $mbar.$helpmenuname 7.stuff/synth
++ doc_submenu $mbar.$helpmenuname 7.stuff/tools
++ $mbar.$helpmenuname add separator
++ $mbar.$helpmenuname add command -label {Gem manual...} \
++ -command {menu_doc_open doc/Gem/00.manual index.html}
++ $mbar.$helpmenuname add separator
++ $mbar.$helpmenuname add command -label {RRADical manual...} \
++ -command {menu_doc_open doc/rradical rradicalpd.html}
++ doc_submenu $mbar.$helpmenuname rradical
++ $mbar.$helpmenuname add separator
++ $mbar.$helpmenuname add command -label {Building Drums in Pd...} \
++ -command {menu_doc_open doc/tutorials/footils/pddrums pddrums.html}
++ doc_submenu $mbar.$helpmenuname tutorials/footils/pddrums
++ doc_submenu $mbar.$helpmenuname abstractions/footils/angriff
++ $mbar.$helpmenuname add separator
++ $mbar.$helpmenuname add command -label {serendiPd info...} \
++ -command {menu_doc_open doc/serendipd home.html}
++ $mbar.$helpmenuname add command -label {serendiPd client} \
++ -command {menu_doc_open doc/serendipd serendiPd-gui.pd}
++ $mbar.$helpmenuname add command -label {serendiPd server} \
++ -command {menu_doc_open doc/serendipd serendiPd-server.pd}
++ $mbar.$helpmenuname add separator
++ doc_submenu $mbar.$helpmenuname tutorials/playnow
+ }
+
+ #################### the "File" menu for the Pd window ##############