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