diff --git a/packages/Makefile b/packages/Makefile index 966e3212a50df40529f9dfca8f22635bb34558d7..c6c6659f916f11963b6bea38a08ae637c97c116e 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -128,7 +128,7 @@ HAVE_AUTOGEN_SH := $(wildcard $(pd_src)/autogen.sh) ifeq (autogen.sh, $(findstring autogen.sh,$(HAVE_AUTOGEN_SH))) #----------------------------------------------------------------------------# # new autotools build system -pd: set_version +pd: git_version cd $(pd_src) \ && ./autogen.sh \ && ./configure $(PD_CONFIGURE_FLAGS) \ @@ -154,7 +154,7 @@ $(pd_src)/src/configure: $(pd_src)/src/configure.ac # cd $(pd_src)/src/ && ./configure $(PD_CONFIGURE_FLAGS) # this line has the "-" to support the current makefile.mingw hack -pd: $(pd_src)/src/configure set_version +pd: $(pd_src)/src/configure git_version -cd $(pd_src)/src && ./configure $(PD_CONFIGURE_FLAGS) && \ make OPT_CFLAGS="" depend && \ make $(DEST_PATHS) $(PD_BUILD_FLAGS) @@ -258,9 +258,8 @@ welcome_install: echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://puredata.org/ploneCustom.css\" />" >> $(WELCOME_FILE) echo "</head>" >> $(WELCOME_FILE) echo "<body><p><p>" >> $(WELCOME_FILE) - echo "<center><img src=\"\">" >> $(WELCOME_FILE) - echo "<h2>Version $(PD_VERSION)</h2>" >> $(WELCOME_FILE) - echo "<p>written by Miller S. Puckette</p></center>" >> $(WELCOME_FILE) + echo "<h2>Pd-l2ork version $(PD_L2ORK_VERSION) ($(PD_BUILD_VERSION))</h2>" >> $(WELCOME_FILE) + echo "<p>Pd-l2ork was written by Ivica Bukvic and Jonathan Wilkes. It is a fork of Hans-Christoph Steiner's Pd-extended, which in turn is based on Miller S. Puckette's Pd. The included Pd abstractions and externals are the work of many people whose contributions are gratefully acknowledged.</p>" >> $(WELCOME_FILE) echo "<font size=\"-1\">" >> $(WELCOME_FILE) echo "<p>`grep -A9 ACKNOWLEDG $(pd_src)/README.txt`</p>" >> $(WELCOME_FILE) echo "</font>" >> $(WELCOME_FILE) @@ -280,18 +279,19 @@ readme_install: echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://puredata.org/plone.css\" />" >> $(README_FILE) echo "</head>" >> $(README_FILE) echo "<body>" >> $(README_FILE) - echo "<h2>Pure Data $(PD_VERSION)</h2>" >> $(README_FILE) - echo "<p>Pd is a real-time, graphical programming language for media processing. It provides an 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 "<h2>Pd-l2ork version $(PD_L2ORK_VERSION) ($(PD_BUILD_VERSION))</h2>" >> $(README_FILE) + echo "<p>Pd is a real-time, graphical programming language for media processing created by Miller S. Puckette. It provides an 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>Pd-l2ork is a version of Pd based on Hans-Christoph Steiner's Pd-extended which features many bugfixes and enhancements, especially in the user interface. Pd-l2ork was created by Ivica Ico Bukvic and is maintained by a team of volunteers including Jonathan Wilkes who ported it to the Mac and Windows. It is available for Linux, Windows and MacOS X.</p>" >> $(README_FILE) + echo "<p>For general information about Pd, go to: <a href=\"http://puredata.org\" target=\"pd\">http://puredata.org</a>. More information about Pd-l2ork can be found on the <a href=\"http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/\" target=\"pd-l2ork\">Pd-l2ork website</a>.</p>" >> $(README_FILE) echo "<h3>Installation</h3>" >> $(README_FILE) ifeq ($(OS_NAME),linux) - echo "<p></p>" >> $(README_FILE) - echo "<p></p>" >> $(README_FILE) + echo "<p>Links to Pd-l2ork packages for various Linux distributions are available on the <a href=\"http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/\" target=\"pd-l2ork\">Pd-l2ork website</a>.</p>" >> $(README_FILE) + echo "<p>If you're running Ubuntu or Arch, you may also want to check out Albert Gräf's packages on Launchpad and the Arch User Repositories (AUR). Please check his corresponding <a href=\"https://l2orkaur.bitbucket.io/\" target=\"l2orkaur\">Bitbucket</a> <a href=\"https://l2orkubuntu.bitbucket.io/\" target=\"l2orkubuntu\">pages</a> for details.</p>" >> $(README_FILE) endif ifeq ($(OS_NAME),darwin) - echo "<p>To install Pd, drag the $(PD_APP_NAME).app into your <b>/Applications</b> folder or to the shortcut in the disk image. (<i>You might need to put the old one in the trash before copying this one to <b>/Applications</b></i>)</p>" >> $(README_FILE) - echo "<p>By default, most of the included libraries are loaded at startup. To change this, set your own preferences in the <b>Startup...</b> Preferences pane usings the <b>Save all settings</b> button. If you want to start with the default preferences, throw away the Pd preferences file <strong>~/Library/Preferences/org.puredata.pdextended.plist</strong> (<code>~</code> <i>means your home folder</i>), or run this command in the Terminal.app: </p><p><code>rm ~/Library/Preferences/org.puredata.pdextended.plist</code></p><p>The Preferences panels in Pd are currently buggy, so you might have better luck with the Apple utilities: <code>defaults read org.puredata.pdextended</code>, or, <b>Property List Editor</b>, which is freely available as part of <a href=\"http://developer.apple.com/tools/xcode/download/\" target=\"_blank\">XCode</a> or the <a href=\"http://www.apple.com/support/downloads/serveradmintools104.html\" target=\"_blank\">Server Tools</a>.</p>" >> $(README_FILE) - echo "If you want to use PDP on Mac OS X 10.4/Tiger or 10.3/Panther, you will need to install X11 (X11 comes installed with 10.5/Leopard). It comes on the install CD/DVD that your computer came with. For more detail, see <a href=\"http://www.simplehelp.net/2006/10/22/how-to-install-x11-in-os-x/\" target=\"_blank\">How to install X11 in OS X</a> or <a href=\"http://puredata.info/docs/faq/macosx\" target=\"_blank\">How do I install Pd on MacOS X?</a>." >> $(README_FILE) + echo "<p>To install Pd-l2ork, drag the $(APPLICATION_NAME).app into your <b>/Applications</b> folder or to the shortcut in the disk image.</p>" >> $(README_FILE) + echo "<p>By default, most of the included libraries are loaded at startup. To change this, set your own preferences in the <b>Startup</b> tab of the Preferences dialog. If you want to reset Pd-l2ork to the default preferences, remove the Pd-l2ork preferences file <strong>~/Library/Preferences/org.puredata.pd-l2ork.plist</strong> (<code>~</code> means your home folder), or run the following command in the Terminal.app: </p><p><code>rm ~/Library/Preferences/org.puredata.pd-l2ork.plist</code></p>" >> $(README_FILE) + echo "<p>If you want to use PDP on Mac OS X, you may have to install X11. See <a href=\"http://puredata.info/docs/faq/macosx\" target=\"_blank\">How do I install Pd on MacOS X?</a> for details.</p>" >> $(README_FILE) endif ifeq ($(OS_NAME),windows) echo "<p>To make sure that all of the included libraries are loaded when Pd runs, " >> $(README_FILE) @@ -302,34 +302,31 @@ ifeq ($(OS_NAME),windows) endif echo "<h3>Installing Externals, Objects, and Help files</h3>" >> $(README_FILE) echo "<p>" >> $(README_FILE) - echo "If you would like to install other externals, objects, help files, etc. there are special folders that Pd-extended uses, which are listed below. If the folder does not exist, you should create it. You can find out more details about this by reading that FAQ: <a href=\"http://puredata.info/docs/faq/how-do-i-install-externals-and-help-files\" target=\"_blank\">How do I install externals and help files?</a>." >> $(README_FILE) + echo "If you would like to install other externals, objects, help files, etc. there are special folders that Pd-l2ork uses, which are listed below. If the folder does not exist, you should create it. You can find out more details about this by reading this FAQ: <a href=\"http://puredata.info/docs/faq/how-do-i-install-externals-and-help-files\" target=\"_blank\">How do I install externals and help files?</a>." >> $(README_FILE) echo "<dl>" >> $(README_FILE) ifeq ($(OS_NAME),darwin) echo "<dt>Only for the current user account</dt>" >> $(README_FILE) - echo "<dd>~/Library/Pd</dd>" >> $(README_FILE) + echo "<dd>~/Library/Pd-l2ork</dd>" >> $(README_FILE) echo "<dt>For all user accounts on the computer</dt>" >> $(README_FILE) - echo "<dd>/Library/Pd</dd>" >> $(README_FILE) + echo "<dd>/Library/Pd-l2ork</dd>" >> $(README_FILE) endif ifeq ($(OS_NAME),linux) echo "<dt>Only for the current user account</dt>" >> $(README_FILE) - echo "<dd>~/pd-externals/</dd>" >> $(README_FILE) + echo "<dd>~/pd-l2ork-externals/</dd>" >> $(README_FILE) echo "<dt>For all user accounts on the computer</dt>" >> $(README_FILE) - echo "<dd>/usr/local/lib/pd-externals</dd>" >> $(README_FILE) + echo "<dd>/usr/local/lib/pd-l2ork-externals</dd>" >> $(README_FILE) endif ifeq ($(OS_NAME),windows) echo "<dt>Only for the current user account</dt>" >> $(README_FILE) - echo "<dd><a href=\"file:///%UserProfile%/Application%20Data\">%UserProfile%\Application Data\Pd</a></dd>" >> $(README_FILE) + echo "<dd><a href=\"file:///%UserProfile%/Application%20Data\">%UserProfile%\Application Data\Pd-l2ork</a></dd>" >> $(README_FILE) echo "<dt>For all user accounts on the computer</dt>" >> $(README_FILE) - echo "<dd><a href=\"file:///%CommonProgramFiles%/\">%ProgramFiles%\Common Files\Pd</a></dd>" >> $(README_FILE) + echo "<dd><a href=\"file:///%CommonProgramFiles%/\">%ProgramFiles%\Common Files\Pd-l2ork</a></dd>" >> $(README_FILE) endif echo "</dl>" >> $(README_FILE) echo "</p>" >> $(README_FILE) - echo "<h3>Flext Binaries have been removed from Pd-extended</h3>" >> $(README_FILE) - echo "<p>As of release 0.41.4 of Pd-extended, the whole package is built from source every night. That means that some objects have been removed from the package because they were not being built from source (objects like [pool], [msd], [flashserver], etc.). You can download these objects from the original authors or <a href=\"http://puredata.info/docs/faq/how-do-i-download-the-flext-binaries-that-used-to-be-included-in-pd-extended\" target=\"_blank\">get the files from the 0.40.3 Pd-extended release</a>." >> $(README_FILE) - echo "</p>" >> $(README_FILE) echo "<h3>License</h3>" >> $(README_FILE) echo "<p>" >> $(README_FILE) - echo 'This package is released under the <a href="http://www.gnu.org/copyleft/gpl.html" target="gpl">GNU GPL</a>. The Pd core and some other included code is originally available with a <a href="http://pure-data.cvs.sourceforge.net/pure-data/pd/LICENSE.txt">BSD license</a> from the Pd CVS on SourceForge.' >> $(README_FILE) + echo 'This package is released under the <a href="http://www.gnu.org/copyleft/gpl.html" target="gpl">GNU GPL</a>. The Pd core and some other included code is available under a <a href="http://pure-data.cvs.sourceforge.net/pure-data/pd/LICENSE.txt">BSD license</a> from the Pd source code repository on SourceForge.' >> $(README_FILE) echo "</p>" >> $(README_FILE) echo "<h3>Patented Algorithms</h3>" >> $(README_FILE) echo "<p>" >> $(README_FILE) @@ -477,19 +474,28 @@ devsymlinks_clean: -sudo rm -f /usr/local/lib/libtcl*.dylib /usr/local/lib/libtk*.dylib -sudo rm -f /usr/local/lib/libtclstub*.a /usr/local/lib/libtkstub*.a +# AG: The set_version target is broken since it modifies m_pd.h in-place +# during the build, which is a bad thing to do to files which are supposed to +# be kept in a source code repository. Instead, we create s_stuff.h from +# s_stuff.h.in, where the latter is kept in the repo and the former gets created +# from the latter by substituting PD_BUILD_VERSION. + +git_version: $(pd_src)/src/s_stuff.h.in + cd $(pd_src)/src/ && \ + sed 's|^\(#define PD_BUILD_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' s_stuff.h.in > s_stuff.h set_version: # change Pd's version number to reflect the extended build # this needs the complete_version_defines patch to work cd $(pd_src)/src/ && \ - sed 's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD-EXTENDED_VERSION)"|' m_pd.h > \ + sed 's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' m_pd.h > \ m_pd.h.tmp && mv m_pd.h.tmp m_pd.h unset_version: # change the version number back to the original # this needs the complete_version_defines patch to work cd $(pd_src)/src && \ - sed 's|^\(#define PD_TEST_VERSION ".*\)$(PD-EXTENDED_VERSION_PREFIX).*"|\1"|' \ + sed 's|^\(#define PD_TEST_VERSION ".*\)$(PD_BUILD_VERSION_PREFIX).*"|\1"|' \ m_pd.h > m_pd.h.tmp && \ mv m_pd.h.tmp m_pd.h @@ -554,7 +560,7 @@ patch_pd_devel: # change Pd's version number to reflect the extended build # this needs the complete_version_defines patch to work cd $(pd_src)/src/ && \ - sed 's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD-EXTENDED_VERSION)"|' m_pd.h > \ + sed 's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' m_pd.h > \ m_pd.h.tmp && mv m_pd.h.tmp m_pd.h @echo " " @echo "patching completed." @@ -564,7 +570,7 @@ unpatch_pd_devel: # change the version number back to the original # this needs the complete_version_defines patch to work cd $(pd_src)/src && \ - sed 's|^\(#define PD_TEST_VERSION ".*\)$(PD-EXTENDED_VERSION)"|\1"|' \ + sed 's|^\(#define PD_TEST_VERSION ".*\)$(PD_BUILD_VERSION)"|\1"|' \ m_pd.h > m_pd.h.tmp && \ mv m_pd.h.tmp m_pd.h # apply all platform-specific patches @@ -611,7 +617,7 @@ distclean: cruft_clean test_locations: @echo "PD_VERSION: $(PD_VERSION)" - @echo "PD-EXTENDED_VERSION: $(PD-EXTENDED_VERSION)" + @echo "PD_BUILD_VERSION: $(PD_BUILD_VERSION)" @echo "CWD $(CWD)" @echo "DESTDIR $(DESTDIR)" @echo "PREFIX $(prefix)" diff --git a/packages/Makefile.buildlayout b/packages/Makefile.buildlayout index be5140650f0b11f63c51a18e07dfe86871d76232..496ed7eb719bcb9cc94efba0e640ff7037f1d295 100644 --- a/packages/Makefile.buildlayout +++ b/packages/Makefile.buildlayout @@ -177,19 +177,36 @@ PD_BUGFIX_VERSION := $(shell grep PD_BUGFIX_VERSION $(pd_src)/src/m_pd.h | \ PD_TEST_VERSION := $(shell grep PD_TEST_VERSION $(pd_src)/src/m_pd.h | \ sed 's|^.define *PD_TEST_VERSION *"\(.*\)".*|\1|' ) #PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) -PD_VERSION := $(PD_TEST_VERSION) #ifneq ($(PD_TEST_VERSION),) # PD_VERSION := $(PD_VERSION)-$(PD_TEST_VERSION) #endif -VERSION_DATE := $(shell date +%Y%m%d) +# AG: Pd-l2ork version number. This becomes part of the PD_VERSION. +# It comes from the m_pd.h file and will be something like 1.x for +# "classic" Pd-l2ork and 2.x for the new nw.js version. +PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION $(pd_src)/src/m_pd.h | \ + sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|' ) + +# AG: build version number based on the actual git revision and date. This is +# substituted into s_stuff.h (rather than m_pd.h which we really don't want to +# touch) so that it's available in the source. We use this in lieu of of +# PD_TEST_VERSION for -version and for the package name and accompanying +# materials (ReadMe files and such). Note that this will only work when +# building directly from a clone of the git repo, and of course you'll need to +# have git installed. +PD_BUILD_VERSION := $(shell git log -1 --format=%cd --date=short | sed -e 's/-//g')-rev.$(shell git rev-parse --short HEAD) + +# AG: This is being used for the package name and accompanying materials. For +# Pd-l2ork the vanilla Pd version numbers are rather meaningless (they are +# mainly kept around so that 3rd party externals and abstractions know what +# iteration of the vanilla API they have available). Instead, we use a version +# number derived from PD_L2ORK_VERSION and PD_BUILD_VERSION. +PD_VERSION := $(PD_L2ORK_VERSION)-$(PD_BUILD_VERSION) -# release version for this distro -#PD-EXTENDED_VERSION_PREFIX = l2ork -#PD-EXTENDED_VERSION = $(PD-EXTENDED_VERSION_PREFIX)-$(VERSION_DATE) -PD-EXTENDED_VERSION = $(VERSION_DATE) +VERSION_DATE := $(shell date +%Y%m%d) -PACKAGE_NAME = Pd-l2ork-full-`uname -m`-$(PD_VERSION) +APPLICATION_NAME = Pd-l2ork +PACKAGE_NAME = $(APPLICATION_NAME)-$(PD_VERSION)-`uname -m` #==============================================================================# diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile index cb795a7e6b9ef1a5bbbfe4ee8b26cd65c6293623..fb0f951dcc618cd0371e477f66b325d6145a8d33 100644 --- a/packages/darwin_app/Makefile +++ b/packages/darwin_app/Makefile @@ -5,7 +5,10 @@ export MACOSX_DEPLOYMENT_TARGET = 10.4 CWD := $(shell pwd) BUILD_BASE = $(CWD)/build -PD_APP_NAME = $(PACKAGE_NAME) +# some folks may prefer to have the version and architecture in the app name +#PD_APP_NAME = $(PACKAGE_NAME) +# but we want just the real name of the application +PD_APP_NAME = $(APPLICATION_NAME) PD_SHORT_NAME = "Purr-Data" PD_APP_CONTENTS = $(BUILD_BASE)/$(PD_APP_NAME).app/Contents DESTDIR = $(PD_APP_CONTENTS)/Resources/app.nw @@ -15,14 +18,6 @@ BUILDLAYOUT_DIR = $(cvs_root_dir)/packages include $(BUILDLAYOUT_DIR)/Makefile.buildlayout -WISH_FRAMEWORKS_SOURCE := $(shell (test -e "/Library/Frameworks/Tk.framework/Tk" && echo "/Library/Frameworks") || echo /System/Library/Frameworks) -WISH_SOURCE = $(WISH_FRAMEWORKS_SOURCE)/Tk.framework/Resources -# Wish Shell.app changed to Wish.app in TclTk 8.4.10 -WISH_NAME := $(shell ( test -d $(WISH_SOURCE)/Wish.app && echo Wish) \ - || echo Wish Shell) -WISH = "$(WISH_SOURCE)/$(WISH_NAME).app" -WISH_CONTENTS = "$(WISH)/Contents" - # CPU-specific gleaned from: # http://developer.apple.com/releasenotes/DeveloperTools/RN-GCC4/ # http://hpc.sourceforge.net/ @@ -93,6 +88,8 @@ endif # remove the broken pd-l2ork symlink from bin/ rm $(DESTDIR)/bin/pd-l2ork install -p $(cvs_root_dir)/pd/bin/pd-l2ork $(DESTDIR)/bin + # fix the broken pd-l2ork symlink in $(DESTDIR), too + ln -sf bin/pd-l2ork $(DESTDIR) #------------------------------------------------------------------------------# # this target is for when you already have a pre-built Pd.app and you @@ -105,61 +102,26 @@ extended_app_install: #------------------------------------------------------------------------------# -# build a standalone Wish.app from the installed Tcl/Tk Frameworks +# build a standalone nw.js app darwin_app_wrapper: Info.plist -# Wish +# nwjs.app install -d "$(BUILD_BASE)" rsync -ax $(cvs_root_dir)/pd/nw/nw/nwjs.app/ $(BUILD_BASE)/$(PD_APP_NAME).app/ -# install -d "$(PD_APP_CONTENTS)/MacOS" - #install -m0755 -p \ - # "$(WISH_CONTENTS)/MacOS/$(WISH_NAME)" "$(PD_APP_CONTENTS)/MacOS" - #install -d "$(PD_APP_CONTENTS)/Resources" -# only embed the Tcl/Tk Frameworks if not building against the built-in ones -#ifneq (/System,$(findstring /System,$(WISH_FRAMEWORKS_SOURCE))) - #install -d $(PD_APP_CONTENTS)/Frameworks \ - # $(PD_APP_CONTENTS)/Frameworks/Tcl.framework \ - # $(PD_APP_CONTENTS)/Frameworks/Tk.framework - #ditto $(WISH_FRAMEWORKS_SOURCE)/Tcl.framework \ - # $(PD_APP_CONTENTS)/Frameworks/Tcl.framework/ - #ditto $(WISH_FRAMEWORKS_SOURCE)/Tk.framework \ - # $(PD_APP_CONTENTS)/Frameworks/Tk.framework/ - #rm -rf $(PD_APP_CONTENTS)/Frameworks/Tcl.framework/{,/Versions/8.4}/{Headers,PrivateHeaders,*_debug,lib*.a,*Config.sh} && \ - #rm -rf $(PD_APP_CONTENTS)/Frameworks/Tk.framework/{,/Versions/8.4}/{Headers,PrivateHeaders,*_debug,lib*.a,*Config.sh} - #chmod -R u+w $(PD_APP_CONTENTS)/Frameworks -# from http://tktoolkit.cvs.sourceforge.net/tktoolkit/tk/macosx/GNUmakefile - #fix_install_id ( ) { \ - # chmod -R a+w "$$1"; \ - # install_name_tool -id $$(otool -L "$$1" | awk "/$$2\.framework.*[^:]\$$/ {sub(\"^.*/Frameworks\",\"@executable_path/../Frameworks\",\$$1); print \$$1}") "$$1"; \ - # chmod -R a-w "$$1"; \ - #} && \ - #fix_install_name ( ) { \ - # chmod -R a+w "$$1"; \ - # install_name_tool -change $$(otool -L "$$1" | awk "/$$2\.framework.*[^:]\$$/ {print \$$1; sub(\"^.*/Frameworks\",\"@executable_path/../Frameworks\",\$$1); print \$$1}") "$$1"; \ - # chmod -R a-w "$$1"; \ - #} && \ - #fix_install_id $(PD_APP_CONTENTS)/Frameworks/Tcl.framework/Tcl Tcl && \ - #fix_install_id $(PD_APP_CONTENTS)/Frameworks/Tk.framework/Tk Tk && \ - #fix_install_name "$(PD_APP_CONTENTS)/MacOS/$(WISH_NAME)" Tcl && \ - #fix_install_name "$(PD_APP_CONTENTS)/MacOS/$(WISH_NAME)" Tk -#endif # NOT /System # set up app wrapper install -d "$(PD_APP_CONTENTS)/Resources/app.nw" # The nw.js app has its own Info.plist install -m0644 -p Info.plist "$(PD_APP_CONTENTS)" install -m0644 -p *.icns "$(PD_APP_CONTENTS)/Resources" - #mv "$(PD_APP_CONTENTS)/MacOS/${WISH_NAME}" \ - # "$(PD_APP_CONTENTS)/MacOS/${PD_APP_NAME}" # Now change the localized app name in Resources/*.lproj from nwjs # to "Purr Data". For some reason "CFBundleDisplayName" doesn't accept # spaces so we give it "PurrData" - for file in $(BUILD_BASE)/*.app/Contents/Resources/*.lproj/InfoPlist.strings; \ - do \ - plutil -convert json "$$file"; \ - LC_ALL=C sed -i.bak 's/"CFBundleName":"nwjs"/"CFBundleName":"Purr Data"/g' "$$file"; \ - LC_ALL=C sed -i.bak 's/"CFBundleDisplayName":"nwjs"/"CFBundleDisplayName":"PurrData"/g' "$$file"; \ - rm "$$file".bak; \ - plutil -convert binary1 "$$file"; \ - done; + for file in $(BUILD_BASE)/*.app/Contents/Resources/*.lproj/InfoPlist.strings; do \ + plutil -convert json "$$file"; \ + LC_ALL=C sed -i.bak 's/"CFBundleName":"nwjs"/"CFBundleName":"Purr Data"/g' "$$file"; \ + LC_ALL=C sed -i.bak 's/"CFBundleDisplayName":"nwjs"/"CFBundleDisplayName":"PurrData"/g' "$$file"; \ + rm "$$file".bak; \ + plutil -convert binary1 "$$file"; \ + done #------------------------------------------------------------------------------# # generate Info.plist using PD_APP_NAME and PD_VERSION @@ -207,7 +169,7 @@ darwin_app_core: darwin_app_wrapper install -p -m0644 org.puredata.pd-l2ork.default.plist "$(PD_APP_CONTENTS)/Resources/" # since Pd-vanilla on Mac OS X doesn't have an 'include/pd' folder, # Pd-extended will mimic Pd-vanilla's include/pd until Pd-vanilla gets one - ln -s pdextended "$(PD_APP_CONTENTS)/Resources/app.nw/include/pd" + ln -s pd-l2ork "$(PD_APP_CONTENTS)/Resources/app.nw/include/pd" ln -s pd/m_pd.h "$(PD_APP_CONTENTS)/Resources/app.nw/include/m_pd.h" @@ -293,8 +255,7 @@ darwin_app_clean: -rm -f -- $(PD_APP_CONTENTS)/Resources/bin/*.tk -rm -f -- $(PD_APP_CONTENTS)/Resources/bin/*.tcl -rm -f -- $(PD_APP_CONTENTS)/Resources/Scripts - -rm -f -- "$(PD_APP_CONTENTS)/Resources/$(WISH_NAME).rsrc" \ - "$(PD_APP_CONTENTS)/Resources/pd*.icns" + -rm -f -- "$(PD_APP_CONTENTS)/Resources/pd*.icns" -rmdir $(PD_APP_CONTENTS)/Resources -rmdir $(BUILD_BASE)/$(PD_APP_NAME).app/Contents -rmdir $(BUILD_BASE)/$(PD_APP_NAME).app @@ -325,10 +286,7 @@ test_locations: @echo "OPT_CFLAGS: $(OPT_CFLAGS)" @echo "PD_VERSION: $(PD_VERSION)" @echo "PACKAGE_NAME: $(PACKAGE_NAME)" - @echo "PD-EXTENDED_VERSION: $(PD-EXTENDED_VERSION)" - @echo "WISH: $(WISH)" - @echo "WISH_FRAMEWORKS_SOURCE: $(WISH_FRAMEWORKS_SOURCE)" - @echo "Tcl/Tk Version: $(shell sed -n 's|.*>\(8\..*\)<.*|\1|p' $(WISH_FRAMEWORKS_SOURCE)/Tk.framework/Resources/Info.plist | head -1)" + @echo "PD_BUILD_VERSION: $(PD_BUILD_VERSION)" @echo "CWD $(CWD)" @echo "DESTDIR $(DESTDIR)" @echo "PREFIX $(prefix)" diff --git a/packages/linux_make/Makefile b/packages/linux_make/Makefile index a296270482a0616f500e211ddace71c19585c2c1..5b9cf1ff67bec595d1d8f0d9f28d6ee576836346 100644 --- a/packages/linux_make/Makefile +++ b/packages/linux_make/Makefile @@ -72,7 +72,7 @@ install: # #==============================================================================# -PACKAGE_NAME = pd-l2ork-`uname -m`-$(PD_VERSION) +PACKAGE_NAME = pd-l2ork-$(PD_VERSION)-`uname -m` package: $(PACKAGE_TYPE) @@ -264,7 +264,7 @@ test_locations: @echo -------------------------------------------------- @echo "PD_VERSION: $(PD_VERSION)" @echo "DEB_PD_VERSION: $(DEB_PD_VERSION)" - @echo "PD-EXTENDED_VERSION: $(PD-EXTENDED_VERSION)" + @echo "PD_BUILD_VERSION: $(PD_BUILD_VERSION)" @echo "CWD $(CWD)" @echo "DESTDIR $(DESTDIR)" @echo "PACKAGE_TYPE $(PACKAGE_TYPE)" diff --git a/packages/win32_inno/Makefile b/packages/win32_inno/Makefile index 18aa4ebded6feb59f2d71dfb23552a9ec398f7af..9ee533f5b9b6e6fe948d68d61831e444b6691fb5 100755 --- a/packages/win32_inno/Makefile +++ b/packages/win32_inno/Makefile @@ -145,7 +145,7 @@ $(PD_INNO_SETUP): $(PD_INNO_SETUP).in cat "$(PD_INNO_SETUP).in" | \ sed 's/PACKAGE_NAME/$(PACKAGE_NAME)/g' | \ sed 's/PD_VERSION/$(PD_VERSION)/g' | \ - sed 's/PD-EXTENDED_VERSION/$(PD-EXTENDED_VERSION)/g' > \ + sed 's/PD_BUILD_VERSION/$(PD_BUILD_VERSION)/g' > \ $(PD_INNO_SETUP) # start $(PD_INNO_SETUP) @@ -182,7 +182,7 @@ test_package: test_locations: @echo -------------------------------------------------- @echo "PD_VERSION: $(PD_VERSION)" - @echo "PD-EXTENDED_VERSION: $(PD-EXTENDED_VERSION)" + @echo "PD_BUILD_VERSION: $(PD_BUILD_VERSION)" @echo "CWD $(CWD)" @echo "DESTDIR $(DESTDIR)" @echo "PREFIX $(prefix)" diff --git a/pd/doc/1.manual/1.introduction.txt b/pd/doc/1.manual/1.introduction.txt index 05c168b6c99d9ddc42d660dfdd3c7bd812d8c7fe..f4399458c1407fba91412924fe437fc9663a8a5e 100644 --- a/pd/doc/1.manual/1.introduction.txt +++ b/pd/doc/1.manual/1.introduction.txt @@ -1,27 +1,28 @@ PD_VERSION A real-time graphical programming environment for live interactive -computer music, Pd-l2ork currently works only on Linux. +computer music, Pd-l2ork works on Linux, Macintosh OSX, and Microsoft +Windows. Pd is copyrighted, but is free for you to use for any reasonable purpose. See the file: - PD_BASEDIR/LICENSE.txt + PD_BASEDIR/doc/manuals/Pd/Pd-LICENSE.txt -L2Ork iteration offers rewrite of many of PD's core routines for the -purpose of improving editor functionality and stability. It is -distributed under the same license as base PD. For additional info see: +Pd-l2ork offers a rewrite of many of Pd's core routines for the purpose +of improving editor functionality and stability. It is distributed under +the same license as Pd. For additional info see: http://l2ork.music.vt.edu/main/ Reference documentation for Pd lives in: file:PD_BASEDIR/doc/1.manual/index.htm or: - http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm + http://msp.ucsd.edu/Pd_documentation/ Much more documentation and other resources live on: http://puredata.org The Pd mailing list archive lives in: - http://iem.kug.ac.at/mailinglists/pd-list/ + http://iem.at/mailinglists/pd-list/ Many more useful links are listed in the HTML documentation, section 1.2. diff --git a/pd/src/import.c b/pd/src/import.c index 9a1566f18afeabff39f3469bc62dc0f9749356d2..039dce878b1909b550028799a79832141d2f12a1 100644 --- a/pd/src/import.c +++ b/pd/src/import.c @@ -173,5 +173,6 @@ void import_setup(void) post("\t[import] is still in development, the interface could change!"); //post("\tcompiled against Pd version %d.%d.%d", PD_MAJOR_VERSION, // PD_MINOR_VERSION, PD_BUGFIX_VERSION); - post("\tcompiled against Pd-l2ork version %s", PD_TEST_VERSION); + post("\tcompiled against Pd-l2ork version %s (%s)", PD_L2ORK_VERSION, + PD_BUILD_VERSION); } diff --git a/pd/src/m_pd.h b/pd/src/m_pd.h index 1a96393de33e27b92f2746255a63eb7a9e99dee4..4cb8aa87a10482e6a6c6fbb54e8b75b03242098b 100644 --- a/pd/src/m_pd.h +++ b/pd/src/m_pd.h @@ -11,9 +11,10 @@ extern "C" { #include <stdarg.h> #define PD_MAJOR_VERSION 0 -#define PD_MINOR_VERSION 42 -#define PD_BUGFIX_VERSION 7 -#define PD_TEST_VERSION "20160525" +#define PD_MINOR_VERSION 43 +#define PD_BUGFIX_VERSION 10 +#define PD_TEST_VERSION "" +#define PD_L2ORK_VERSION "1.99" #define PDL2ORK extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ diff --git a/pd/src/makefile.in b/pd/src/makefile.in index 40e32b18eae24302bf55d0ee9d82a2903e72584a..70318c4f560fae880a2e2be55d7b4a2a65caaa57 100644 --- a/pd/src/makefile.in +++ b/pd/src/makefile.in @@ -97,6 +97,11 @@ PD_VERSION := $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) ifneq ($(PD_TEST_VERSION),) PD_VERSION := $(PD_VERSION)-$(PD_TEST_VERSION) endif +# AG: Pd-l2ork version number +PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION m_pd.h | \ + sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|' ) +PD_BUILD_VERSION := $(shell grep PD_BUILD_VERSION s_stuff.h | \ + sed 's|^.define *PD_BUILD_VERSION *"\(.*\)".*|\1|' ) # # ------------------ targets ------------------------------------ @@ -200,7 +205,7 @@ install: all $(DESTDIR)$(pddocdir)/7.stuff/$$dir ; \ done mv $(ABOUT_FILE) $(ABOUT_FILE).tmp - cat $(ABOUT_FILE).tmp | sed 's|PD_VERSION|Pd-l2ork version $(PD_TEST_VERSION)|' \ + cat $(ABOUT_FILE).tmp | sed 's|PD_VERSION|Pd-l2ork version $(PD_L2ORK_VERSION) ($(PD_BUILD_VERSION))|' \ > $(ABOUT_FILE) rm $(ABOUT_FILE).tmp rsync -ax --exclude=.git --exclude=.svn ../extra $(DESTDIR)$(libpddir)/ diff --git a/pd/src/s_main.c b/pd/src/s_main.c index fb2114595a8fcf3dd600abc5a5ca97de7db65323..91ae1cfe4582aa1f1bbf2b7d62e8f2dafffe3e66 100644 --- a/pd/src/s_main.c +++ b/pd/src/s_main.c @@ -254,7 +254,8 @@ static void pd_makeversion(void) // PD_MAJOR_VERSION, PD_MINOR_VERSION, // PD_BUGFIX_VERSION, PD_TEST_VERSION); - snprintf(foo, sizeof(foo), "Pd-L2Ork version %s\n", PD_TEST_VERSION); + snprintf(foo, sizeof(foo), "Pd-L2Ork version %s (%s)\n", PD_L2ORK_VERSION, + PD_BUILD_VERSION); pd_version = strdup(foo); } diff --git a/pd/src/s_stuff.h b/pd/src/s_stuff.h.in similarity index 97% rename from pd/src/s_stuff.h rename to pd/src/s_stuff.h.in index 107b3b809d5838f7cea38859de86365f86bc77a9..a5b72e89aaa8b8ac2ff2cbdb43df9dc0655d9a0b 100644 --- a/pd/src/s_stuff.h +++ b/pd/src/s_stuff.h.in @@ -10,6 +10,12 @@ in future releases. The public (stable) API is in m_pd.h. */ #ifndef __s_stuff_h_ #define __s_stuff_h_ +// AG: Generated build version number. Pd-l2ork uses this in lieu of vanilla's +// PD_TEST_VERSION. We wouldn't want to touch m_pd.h for this, so it's part of +// the internal API. Also note that this value gets substituted automatically +// at build time, so any manual edits will be lost. +#define PD_BUILD_VERSION "<build version>" + /* in s_path.c */ typedef struct _namelist /* element in a linked list of stored strings */