Update of /cvsroot/pure-data/packages/darwin_app In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4435/darwin_app
Modified Files: Makefile TODO org.puredata.pd.plist Added Files: embed-MacOSX-dependencies.sh Log Message:
- Lots of bug fixes
- added script which searches thru all of the .pd_darwin files for dependencies from Fink. It then copies those libs into the Pd.app and sets everything up for them to be sourced by the objects.
- added Guenter's quick hack to allow international characters in Pd patches
--- NEW FILE: embed-MacOSX-dependencies.sh --- #!/bin/sh # # This script finds all of the dependecies from Fink and included them into # the Pd.app. hans@at.or.at # # run it in the root directory where the externals are stored, i.e. "extra"
if [ $# -ne 1 ]; then echo "Usage: $0 Pd.app-Contents" echo " i.e. $0 /Applications/Pd.app/Contents/" exit fi
LIB_DIR=lib PD_APP_CONTENTS=$1 PD_APP_LIB=$PD_APP_CONTENTS/$LIB_DIR
#echo "PD_APP_CONTENTS: $PD_APP_CONTENTS" #echo "PD_APP_LIB: $PD_APP_LIB"
echo " "
for pd_darwin in `find $PD_APP_CONTENTS -name '*.pd_darwin'`; do LIBS=`otool -L $pd_darwin | sed -n 's|.*/sw/lib/(.*.dylib).*|\1|p'` if [ "x$LIBS" != "x" ]; then echo "`echo $pd_darwin | sed 's|.*/(.*.pd_darwin$)|\1|'` is using:" for lib in $LIBS; do echo -e "\t$lib" install -d $PD_APP_LIB install -p /sw/lib/$lib $PD_APP_LIB # @executable_path starts from Contents/Resources/bin/pd install_name_tool -id @executable_path/../../$LIB_DIR/$lib $PD_APP_LIB/$lib install_name_tool -change /sw/lib/$lib @executable_path/../../$LIB_DIR/$lib $pd_darwin done echo " " fi done
for dylib in $PD_APP_LIB/*.dylib; do LIBS=`otool -L $dylib | sed -n 's|.*/sw/lib/(.*.dylib).*|\1|p'` if [ "x$LIBS" != "x" ]; then echo "`echo $dylib | sed 's|.*/(.*.dylib)|\1|'` is using:" for lib in $LIBS; do echo -e "\t$lib" install -p /sw/lib/$lib $PD_APP_LIB # @executable_path starts from Contents/Resources/bin/pd install_name_tool -id @executable_path/../../$LIB_DIR/$lib $PD_APP_LIB/$lib install_name_tool -change /sw/lib/$lib @executable_path/../../$LIB_DIR/$lib $dylib done echo " " fi done
Index: Makefile =================================================================== RCS file: /cvsroot/pure-data/packages/darwin_app/Makefile,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** Makefile 12 Dec 2005 02:17:03 -0000 1.29 --- Makefile 16 Dec 2005 18:38:11 -0000 1.30 *************** *** 3,7 ****
# needed to support weak linking of frameworks ! MAKE=MACOSX_DEPLOYMENT_TARGET=10.3 make
CWD := $(shell pwd) --- 3,7 ----
# needed to support weak linking of frameworks ! MAKE = MACOSX_DEPLOYMENT_TARGET=10.3 make
CWD := $(shell pwd) *************** *** 26,29 **** --- 26,49 ---- include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
+ # base level optimizations + OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer + + # CPU-specific gleaned from http://developer.apple.com/releasenotes/DeveloperTools/GCC3.html + # check this too: http://hpc.sourceforge.net/ + # Generic PowerPC + #OPT_CFLAGS += -mcpu=powerpc -mpowerpc + # PowerPC 750 (G3) + #OPT_CFLAGS += -mcpu=750 -mpowerpc-gfxopt + # PowerPC 7400 (G4 <= 700Mhz) + #OPT_CFLAGS += -mcpu=7400 -faltivec -mpowerpc-gfxopt + # PowerPC 7450 (G4 >= 533MHz) + #OPT_CFLAGS += -fast -fPIC -mcpu=7450 -mtune=7450 -faltivec -ffast-math -mpowerpc-gfxopt + # PowerPC G5 (gcc-3.3) + #OPT_CFLAGS += -fast -fPIC -faltivec -mpowerpc-gpopt -mpowerpc-gfxopt + + # Package default, support older PowerPCs, but G4 (7450) is the most common + OPT_CFLAGS += -mcpu=powerpc -mtune=7450 -mpowerpc-gfxopt + + # these are sent to all of the various Makefiles so that they all copy their # output to the same directory tree *************** *** 32,49 **** prefix=$(prefix) \ DESTDIR=$(DESTDIR) \ UNAME=$(UNAME)
install: darwin_app
#------------------------------------------------------------------------------# ! darwin_app: darwin_app_core extended_app_install darwin_app_doc_format rez_install @echo " " @echo "Pd.app build succeeded!"
#------------------------------------------------------------------------------# # 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
--- 52,81 ---- prefix=$(prefix) \ DESTDIR=$(DESTDIR) \ + OPT_CFLAGS="$(OPT_CFLAGS)" \ UNAME=$(UNAME)
+ all: + cd $(packages_src) && $(MAKE) $(DEST_PATHS) + install: darwin_app
#------------------------------------------------------------------------------# ! darwin_app: darwin_app_core extended_install darwin_app_doc_format rez_install \ ! darwin_app_embed_libs @echo " " @echo "Pd.app build succeeded!"
+ extended_install: + cd $(packages_src) && $(MAKE) $(DEST_PATHS) 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: ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) abstractions_install ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) doc_install ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) extensions_install ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) externals_install
*************** *** 61,65 **** install -d "$(PD_APP_CONTENTS)/Resources" install -m0644 -p \ ! $(WISH_CONTENTS)/Resources/Wish\ Shell.rsrc \ "$(PD_APP_CONTENTS)/Resources" install -d "$(PD_APP_CONTENTS)/Frameworks" --- 93,97 ---- install -d "$(PD_APP_CONTENTS)/Resources" install -m0644 -p \ ! $(WISH_CONTENTS)/Resources/$(WISH_NAME).rsrc \ "$(PD_APP_CONTENTS)/Resources" install -d "$(PD_APP_CONTENTS)/Frameworks" *************** *** 88,96 ****
#------------------------------------------------------------------------------# darwin_app_core: darwin_app_wrapper - export MACOSX_DEPLOYMENT_TARGET=10.3 cd $(packages_src) && \ ! make $(DEST_PATHS) PD_CONFIGURE_FLAGS=--enable-jack pd_install cd "$(PD_APP_CONTENTS)/Resources/Scripts" && \ ln -s ../bin/pd.tk AppMain.tcl --- 120,131 ----
+ darwin_app_embed_libs: + ./embed-MacOSX-dependencies.sh $(PD_APP_CONTENTS) + + #------------------------------------------------------------------------------# darwin_app_core: darwin_app_wrapper cd $(packages_src) && \ ! $(MAKE) $(DEST_PATHS) PD_CONFIGURE_FLAGS=--enable-jack pd_install cd "$(PD_APP_CONTENTS)/Resources/Scripts" && \ ln -s ../bin/pd.tk AppMain.tcl *************** *** 118,124 **** #==============================================================================#
- extended_install: - cd $(packages_src) && make $(DEST_PATHS) install -
#------------------------------------------------------------------------------# --- 153,156 ---- *************** *** 148,152 **** dmg: darwin_app_perms install -d "$(CWD)/$(DMG_NAME)" - cd $(BUILD_BASE) && mv $(PD_APP_NAME).app "$(CWD)/$(DMG_NAME)/" install -p -m0444 $(manualsdir)/Pd/Pd-LICENSE.txt \ $(manualsdir)/Pd/License.html \ --- 180,183 ---- *************** *** 154,168 **** $(manualsdir)/Pd/ReadMe.html \ "$(CWD)/$(DMG_NAME)" install -p -m0444 org.puredata.pd.plist "$(CWD)/$(DMG_NAME)" cd $(CWD) && /bin/sh mkdmg "$(DMG_NAME)"
! clean: darwin_app_clean darwin_app_externals_flext_clean \ ! cd $(packages_src) && make clean -rm Info.plist
darwin_app_clean: ! -sudo rm -Rf -- $(PD_APP_CONTENTS)/Frameworks -rm -f -- $(PD_APP_CONTENTS)/Plugins $(PD_APP_CONTENTS)/Info.plist -rm -f -- $(PD_APP_CONTENTS)/MacOS/Pd --- 185,206 ---- $(manualsdir)/Pd/ReadMe.html \ "$(CWD)/$(DMG_NAME)" + cd $(BUILD_BASE) && mv $(PD_APP_NAME).app "$(CWD)/$(DMG_NAME)/" install -p -m0444 org.puredata.pd.plist "$(CWD)/$(DMG_NAME)" cd $(CWD) && /bin/sh mkdmg "$(DMG_NAME)"
! ! distclean: clean ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) distclean ! ! ! clean: darwin_app_clean ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) clean -rm Info.plist
darwin_app_clean: ! -chmod -R u+w $(PD_APP_CONTENTS)/Frameworks ! -rm -rf -- $(PD_APP_CONTENTS)/Frameworks -rm -f -- $(PD_APP_CONTENTS)/Plugins $(PD_APP_CONTENTS)/Info.plist -rm -f -- $(PD_APP_CONTENTS)/MacOS/Pd *************** *** 170,173 **** --- 208,214 ---- -rm -f -- $(PD_APP_CONTENTS)/Resources/Scripts/AppMain.tcl -rmdir $(PD_APP_CONTENTS)/Resources/Scripts + -rm -f -- $(WISH_CONTENTS)/Resources/$(WISH_NAME).rsrc \ + $(WISH_CONTENTS)/Resources/pd*.icns + -rmdir $(PD_APP_CONTENTS)/Resources -rm -f -- $(DESTDIR) -rm -f -- *~ 1 $(README_FILE) $(WELCOME_FILE) $(LICENSE_FILE) \ *************** *** 175,185 ****
! darwin_app_externals_flext_clean: ! cd $(externals_src)/footils/syncgrain && make -f makefile.pd-darwin clean ! -cd $(externals_src)/grill && \ ! rm -- flext/buildsys/config-mac-pd-gcc.txt config.txt flext/config.txt \ ! flext/source/libflext.a */pd-darwin/*.o */pd-darwin/*/*.o \ ! */pd-darwin/*/*.pd_darwin */pd-darwin/*.pd_darwin \ ! */pd-darwin/release-shared/*.dylib */pd-darwin/release-shared/*.opp
--- 216,220 ----
!
*************** *** 211,220 **** #==============================================================================#
darwin_app_externals_flext: @echo " " @echo "Deprecated!!" ! @echo "cd $(packages_src) && make flext_install" ! cd $(packages_src) && make $(DEST_PATHS) flext_install
--- 246,260 ---- #==============================================================================#
+ darwin_app_externals_flext_clean: + @echo " " + @echo "Deprecated!!" + @echo "cd $(packages_src) && $(MAKE) flext_clean" +
darwin_app_externals_flext: @echo " " @echo "Deprecated!!" ! @echo "cd $(packages_src) && $(MAKE) flext_install" ! cd $(packages_src) && $(MAKE) $(DEST_PATHS) flext_install
*************** *** 222,287 **** @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!!" ! @echo "cd $(packages_src) && make externals_clean"
darwin_pd_clean: @echo " " @echo "Deprecated!!" ! @echo "cd $(packages_src) && make pd_clean"
darwin_app_externals: @echo " " @echo "Deprecated!!" ! @echo "cd $(externals_src) && make install"
darwin_app_externals_standard: @echo " " @echo "Deprecated!!" ! @echo "cd $(externals_src) && make install"
darwin_patch_pd: @echo " " @echo "Deprecated!!" ! @echo "cd .. && make patch_pd"
darwin_unpatch_pd: @echo " " @echo "Deprecated!!" ! @echo "cd .. && make unpatch_pd"
darwin_app_docs: @echo " " @echo "Deprecated!!" ! @echo "cd $(doc_src) && make install"
darwin_app_license: @echo " " @echo "Deprecated!!" ! @echo "cd .. && make license"
darwin_app_welcome: @echo " " @echo "Deprecated!!" ! @echo "cd .. && make welcome"
darwin_app_readme: @echo " " @echo "Deprecated!!" ! @echo "cd .. && make readme"
darwin_prebuilt_app: --- 262,327 ---- @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!!" ! @echo "cd $(packages_src) && $(MAKE) externals_clean"
darwin_pd_clean: @echo " " @echo "Deprecated!!" ! @echo "cd $(packages_src) && $(MAKE) pd_clean"
darwin_app_externals: @echo " " @echo "Deprecated!!" ! @echo "cd $(externals_src) && $(MAKE) install"
darwin_app_externals_standard: @echo " " @echo "Deprecated!!" ! @echo "cd $(externals_src) && $(MAKE) install"
darwin_patch_pd: @echo " " @echo "Deprecated!!" ! @echo "cd .. && $(MAKE) patch_pd"
darwin_unpatch_pd: @echo " " @echo "Deprecated!!" ! @echo "cd .. && $(MAKE) unpatch_pd"
darwin_app_docs: @echo " " @echo "Deprecated!!" ! @echo "cd $(doc_src) && $(MAKE) install"
darwin_app_license: @echo " " @echo "Deprecated!!" ! @echo "cd .. && $(MAKE) license"
darwin_app_welcome: @echo " " @echo "Deprecated!!" ! @echo "cd .. && $(MAKE) welcome"
darwin_app_readme: @echo " " @echo "Deprecated!!" ! @echo "cd .. && $(MAKE) readme"
darwin_prebuilt_app:
Index: TODO =================================================================== RCS file: /cvsroot/pure-data/packages/darwin_app/TODO,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TODO 12 Dec 2005 01:58:39 -0000 1.15 --- TODO 16 Dec 2005 18:38:11 -0000 1.16 *************** *** 5,21 **** - research Tcl "auto_path"
- 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
! - 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 (its the Frameworks)
- add standard paths to included org.puredata.pd.plist following these guidelines: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Arti...
- Pd should then test to see if Jack is available before switching to it, otherwise it'll just crash. Here's apple's method of testing: --- 5,43 ---- - research Tcl "auto_path"
+ - 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
! http://doc.trolltech.com/qq/qq09-mac-deployment.html ! ! Now that we have copied the Qt library into the bundle, we must update ! both the library and the executable so that they know where they can be ! found. This is where the install_name_tool command-line tool comes in ! handy. For the Qt library: ! ! install_name_tool \ ! -id @executable_path/../Frameworks/libqt.3.dylib \ ! demo.app/Contents/Frameworks/libqt.3.dylib ! ! otool -L oggcast~.pd_darwin | grep /sw/ | sed -n 's|.*/sw/lib/(.*.dylib).*|\1|p' ! ! ! - 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 (its the Frameworks)
+ - add standard paths to included org.puredata.pd.plist following these guidelines: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Arti...
+ - Pd should then test to see if Jack is available before switching to it, otherwise it'll just crash. Here's apple's method of testing: *************** *** 23,33 **** --- 45,59 ---- http://developer.apple.com/documentation/mac/runtimehtml/RTArch-43.html
+ - try this for the Pref Pane: kAEShowPreferences ::tk::mac::ShowPreferences
+ - research Tk + "Custom MDEF" for menus
+ - create Tcl script called from Prefs that creates links for the standard unix
+ - redo menu system - the menus are the same for all windows *************** *** 38,41 **** --- 64,68 ---- - fix edit mode menu item (make it a checkbox or change to "play mode"
+ - redo key mapping system - make Cmd-Delete also delete, as well as just Delete, so that my *************** *** 43,49 **** --- 70,78 ---- - make Cmd-click work like Ctrl-click
+ - write script to convert from -DMACOSX to -D__APPLE__ where ever possible (check out __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 *************** *** 51,54 **** --- 80,84 ---- working, i.e. loadlib1, loadlib2, etc)
+ ------------------------------------------------------------------------------ semi-abandoned TODOs
Index: org.puredata.pd.plist =================================================================== RCS file: /cvsroot/pure-data/packages/darwin_app/org.puredata.pd.plist,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** org.puredata.pd.plist 14 Dec 2005 00:35:12 -0000 1.6 --- org.puredata.pd.plist 16 Dec 2005 18:38:11 -0000 1.7 *************** *** 8,14 **** <string>Gem</string> <key>loadlib2</key> ! <string>cyclone</string> <key>loadlib3</key> ! <string>iemabs</string> <key>loadlib4</key> <string>iemmatrix</string> --- 8,14 ---- <string>Gem</string> <key>loadlib2</key> ! <string>zexy</string> <key>loadlib3</key> ! <string>cyclone</string> <key>loadlib4</key> <string>iemmatrix</string> *************** *** 30,34 **** <string>xsample</string> <key>loadlib13</key> ! <string>zexy</string> <key>loadlib14</key> <string>maxlib</string> --- 30,34 ---- <string>xsample</string> <key>loadlib13</key> ! <string>markex</string> <key>loadlib14</key> <string>maxlib</string> *************** *** 38,44 **** <string>motex</string> <key>loadlib17</key> ! <string>loaders</string> ! <key>loadlib18</key> ! <string>markex</string> </dict> </plist> --- 38,42 ---- <string>motex</string> <key>loadlib17</key> ! <string>iemabs</string> </dict> </plist>