From ee4b6fc5eacb14be2a2ce5cf15e06ff1d377a891 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 3 Jun 2005 20:28:25 +0000 Subject: removed jack compilation; added lots of abstractions and objects writen in Pd svn path=/trunk/; revision=3110 --- packages/darwin_app/Makefile | 115 +++++++++++++++------ packages/darwin_app/README | 17 ++- packages/darwin_app/TODO | 10 +- .../darwin_app/patches/darwin_linking_fixes.patch | 99 ++++++++++++++++++ .../darwin_app/patches/extended-help-menu.patch | 42 ++++++++ 5 files changed, 242 insertions(+), 41 deletions(-) create mode 100644 packages/darwin_app/patches/darwin_linking_fixes.patch create mode 100644 packages/darwin_app/patches/extended-help-menu.patch 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 "

" > $(WELCOME_FILE) -# echo "

" >> $(WELCOME_FILE) -# echo "

Version $(PD_VERSION)

" >> $(WELCOME_FILE) -# echo "

written by Miller S. Puckette

" >> $(WELCOME_FILE) -# echo "" >> $(WELCOME_FILE) -# echo "

`grep -A9 ACKNOWLEDG ../../pd/README.txt`

" >> $(WELCOME_FILE) -# echo "
" >> $(WELCOME_FILE) -# echo "" >> $(WELCOME_FILE) +darwin_unix_pkg_welcome: + echo "

" > $(WELCOME_FILE) + echo "

" >> $(WELCOME_FILE) + echo "

Version $(PD_VERSION)

" >> $(WELCOME_FILE) + echo "

written by Miller S. Puckette

" >> $(WELCOME_FILE) + echo "" >> $(WELCOME_FILE) + echo "

`grep -A9 ACKNOWLEDG ../../pd/README.txt`

" >> $(WELCOME_FILE) + echo "
" >> $(WELCOME_FILE) + echo "" >> $(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 ############## -- cgit v1.2.1