From 9cf2c9d4f466dfd9ae81bdae9aace2effbe5a5e5 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 30 Nov 2005 07:03:19 +0000 Subject: preparing for RC6, bug fixes and tweaks, things are look ing good svn path=/trunk/; revision=4086 --- abstractions/Makefile | 17 +++--- abstractions/Makefile.buildlayout | 2 +- abstractions/README | 17 ++---- doc/Makefile | 2 + doc/Makefile.buildlayout | 2 +- externals/Makefile | 97 +++++++++++++++++++++++++++++-- externals/Makefile.buildlayout | 3 +- externals/build/TODO | 5 +- packages/Makefile | 33 ++++++++--- packages/Makefile.buildlayout | 3 +- packages/TODO | 2 + packages/darwin_app/Makefile | 7 ++- packages/darwin_app/org.puredata.pd.plist | 28 +++++---- packages/win32_inno/TODO | 10 +--- 14 files changed, 166 insertions(+), 62 deletions(-) diff --git a/abstractions/Makefile b/abstractions/Makefile index a8ef72bd..52da7d0e 100644 --- a/abstractions/Makefile +++ b/abstractions/Makefile @@ -201,12 +201,12 @@ pixeltango_install: install -d $(objectsdir)/$(PIXELTANGO_NAME) install -p $(abstractions_src)/pixelTANGO/abstractions/*.pd \ $(objectsdir)/$(PIXELTANGO_NAME) - install -d $(objectsdir)/$(PIXELTANGO_NAME)/fx install -p $(abstractions_src)/pixelTANGO/abstractions/fx/*.pd \ - $(objectsdir)/$(PIXELTANGO_NAME)/fx + $(objectsdir)/$(PIXELTANGO_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(PIXELTANGO_NAME) \ --author "Ben Bogart" \ --license "GNU GPL" \ + --version "0.3.4" \ --description "objects for creating visuals in a live performance setting" install -d $(helpdir)/$(PIXELTANGO_NAME) install -p $(abstractions_src)/pixelTANGO/help/*.* \ @@ -230,18 +230,15 @@ rradical_install: $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(RRADICAL_NAME) \ --author "Frank Barknecht" \ --license "GNU GPL" - install -d $(objectsdir)/$(RRADICAL_NAME)/control + install -d $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/control/*.* | \ - grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME)/control - install -d $(objectsdir)/$(RRADICAL_NAME)/effects + grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/effects/*.* | \ - grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME)/effects - install -d $(objectsdir)/$(RRADICAL_NAME)/instruments + grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/instruments/*.* | \ - grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME)/instruments - install -d $(objectsdir)/$(RRADICAL_NAME)/stuff + grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/stuff/*.* | \ - grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME)/stuff + grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -d $(examplesdir)/$(RRADICAL_NAME) install -p $(abstractions_src)/rradical/usecases/*.* \ $(examplesdir)/$(RRADICAL_NAME) diff --git a/abstractions/Makefile.buildlayout b/abstractions/Makefile.buildlayout index 5bc5f28b..4e3a5d81 100755 --- a/abstractions/Makefile.buildlayout +++ b/abstractions/Makefile.buildlayout @@ -150,7 +150,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) # release version for this distro -PACKAGE_VERSION = extended-RC5 +PACKAGE_VERSION = extended-RC6 PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION) diff --git a/abstractions/README b/abstractions/README index 7e997cfc..1d1fed22 100644 --- a/abstractions/README +++ b/abstractions/README @@ -41,6 +41,11 @@ doc/pddp/pddp_style_guide.pd How to add your library of patches ================================== + +For the most up-to-date version of these instructions, see: + + http://puredata.org/docs/developer/build + The best way to start is to copy the complete section of an existing library, like memento. Then do a case-preserving search-and-replace, replacing "memento" with the name of your library. Editors such as emacs will make the @@ -139,17 +144,5 @@ $(objectsdir): The subdirectory name (e.g. mylibrary) should always be all lowercase. -"objects" targets - To add your objects to this build system, first make your own target and - add it to the "objects" target. For example: for the RRADical objects, - there is a target called "objects_rradical:" which does everything needed - to install the RRADical objects. This includes installing help patches - and any other documentation. - - -"applications" targets: - This target is meant for any patch that is intended to be opened up and - used, played, ran, etc. The RRADical the-showcase.pd is a good example - diff --git a/doc/Makefile b/doc/Makefile index 003d0185..578ff0d4 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -48,6 +48,8 @@ externals-howto_install: $(manualsdir) install -d $(manualsdir)/$(EXTERNALS-HOWTO_NAME) curl http://iem.kug.ac.at/pd/externals-HOWTO/pd-externals-HOWTO.pdf > \ $(manualsdir)/$(EXTERNALS-HOWTO_NAME)/pd-externals-HOWTO.pdf + curl http://iem.kug.ac.at/pd/externals-HOWTO/HOWTO-externals-en.html > \ + $(manualsdir)/$(EXTERNALS-HOWTO_NAME)/HOWTO-externals-en.html curl http://iem.kug.ac.at/pd/externals-HOWTO/node1.html > \ $(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node1.html curl http://iem.kug.ac.at/pd/externals-HOWTO/node2.html > \ diff --git a/doc/Makefile.buildlayout b/doc/Makefile.buildlayout index 5bc5f28b..4e3a5d81 100644 --- a/doc/Makefile.buildlayout +++ b/doc/Makefile.buildlayout @@ -150,7 +150,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) # release version for this distro -PACKAGE_VERSION = extended-RC5 +PACKAGE_VERSION = extended-RC6 PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION) diff --git a/externals/Makefile b/externals/Makefile index 8aa76724..2cfa5623 100644 --- a/externals/Makefile +++ b/externals/Makefile @@ -37,10 +37,67 @@ DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \ # #==============================================================================# +CFLAGS = -DPD -DUNIX -Dunix $(OPTIM_FLAGS) \ + -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -Wno-shadow +INCLUDES = -I$(pd_src)/src +LDFLAGS = +STRIP = strip --strip-unneeded -R .note -R .comment + +#------------------------------------------------------------------------------# +# DARWIN +DARWIN_CFLAGS = $(CFLAGS) +DARWIN_INCLUDES = $(INCLUDES) -I/sw/include +DARWIN_LDFLAGS = $(LDFLAGS) -bundle -bundle_loader $(pd_src)/bin/pd -L/sw/lib +%.pd_darwin: %.c + $(CC) $(DARWIN_CFLAGS) $(DARWIN_INCLUDES) -o "$*.o" -c "$*.c" + $(CC) $(DARWIN_LDFLAGS) -o "$*.pd_darwin" "$*.o" -lc -lm + chmod a-x "$*.pd_darwin" + rm -f "$*.o" + + #------------------------------------------------------------------------------# -# BUILD +# LINUX +LINUX_CFLAGS = $(CFLAGS) -fPIC +LINUX_INCLUDES = $(INCLUDES) +LINUX_LDFLAGS = $(LDFLAGS) -Wl,-export_dynamic -shared +%.pd_linux: %.c + $(CC) $(CFLAGS) $(INCLUDES) -o "$*.o" -c "../src/$*.c" + gcc $(LINUX_LDFLAGS) -o "$*.pd_linux" "$*.o" -lc -lm + chmod a-x "$*.pd_linux" + $(STRIP) $*.pd_linux + rm -f "$*.o" + + +#------------------------------------------------------------------------------# +# WIN (MinGW) +WIN_CFLAGS = -mms-bitfields $(CFLAGS) +WIN_INCLUDES = $-I. -I.. -I$(PD_PATH)/src -IC:/msys/1.0/include +WIN_LDFLAGS = $(LDFLAGS) -shared -LC:/msys/1.0/lib -L$(PD_PATH)/bin -lpd +# these are for compatibility +WIN_DEFINES = \ + -D'drand48()=((double)rand()/RAND_MAX)' \ + -D'srand48(n)=srand((n))' \ + -D'O_NONBLOCK=1' \ +# These don't seem to be needed: +# -D'bzero(p,n)=memset(p,0,n)' \ +# -D'PROT_READ=1' \ +# -D'MAP_PRIVATE=2' \ +# -D'O_NDELAY=O_NONBLOCK' +%.dll: %.c + $(CC) $(WIN_CFLAGS) $(WIN_DEFINES) $(WIN_INCLUDES) \ + -o "$*.o" -c "../src/$*.c" + gcc $(LDFLAGS) -o "$*.dll" "$*.o" + chmod a-x "$*.pd_linux" + $(STRIP) "$*.dll" + rm "$*.o" + + + + +#------------------------------------------------------------------------------# +# ALL all: pre_all_$(OS_NAME) creb cyclone iemabs iemlib iemmatrix pddp pdp pmpd \ - toxy vbap zexy + smlib toxy vbap zexy @echo "Compiling objects for $(OS_NAME) aka $(UNAME)" # try it this way so that it'll recognize files that have already been built -cd $(externals_src)/build/$(OS_NAME) && make -k @@ -97,6 +154,7 @@ help_install: $(helpdir) $(externals_src)/dfx/*/*.pd \ $(externals_src)/ext13/doc/*.pd \ $(externals_src)/ggee/*/*-help.pd \ + $(externals_src)/ggee/*/*.gif \ $(externals_src)/gem2pdp/*.pd \ $(externals_src)/ff/*.pd \ $(externals_src)/freeverb~/*.pd \ @@ -362,6 +420,32 @@ pmpd_install: pmpd $(examplesdir)/$(PMPD_NAME) +#------------------------------------------------------------------------------# +# SMLIB +SMLIB_NAME=smlib +# exclude SMlib.c since its just for the compiled library +SMLIB_OBJECTS = $(wildcard $(externals_src)/smlib/source/[a-z]*.c) +smlib: $(SMLIB_OBJECTS:.c=.$(EXTENSION)) + +smlib_install: smlib + install -d $(objectsdir)/$(SMLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(SMLIB_NAME) \ + --author "Johannes Taelman " \ + --license "GNU GPL" \ + --description "vector processing, vector analysis, vector synthesis, number stream analysis, number stream filters" + install -p $(SMLIB_OBJECTS:.c=.$(EXTENSION)) $(objectsdir)/$(SMLIB_NAME) + install -d $(helpdir)/$(SMLIB_NAME) + install -p $(wildcard $(externals_src)/smlib/help/*.pd )\ + $(helpdir)/$(SMLIB_NAME) + install -d $(manualsdir)/$(SMLIB_NAME) + install -p $(externals_src)/smlib/readme.txt $(manualsdir)/$(SMLIB_NAME) + install -d $(examplesdir)/$(SMLIB_NAME) + install -p $(wildcard $(externals_src)/smlib/examples/*.pd) \ + $(examplesdir)/$(SMLIB_NAME) + +smlib_clean: + rm $(SMLIB_OBJECTS:.c=.$(EXTENSION)) + #------------------------------------------------------------------------------# # TOXY @@ -377,8 +461,7 @@ toxy_install: toxy --author "Kzrysztof Czaja" \ --license "BSD" \ --description "objects for working with Tcl and Pd's Tk GUI" -# [tow] is currently broken, it doesn't compile - -cd $(externals_src)/miXed/toxy && $(MAKE) OUT_DIR=$(TOXY_OUT_DIR) + cd $(externals_src)/miXed/toxy && $(MAKE) OUT_DIR=$(TOXY_OUT_DIR) install -d $(helpdir)/$(TOXY_NAME) install -p $(externals_src)/miXed/doc/help/toxy/*.* \ $(helpdir)/$(TOXY_NAME) @@ -400,6 +483,10 @@ unauthorized_install: unauthorized # this needs to go here since it produces errors -cd $(externals_src)/unauthorized && $(MAKE) -k install -d $(objectsdir)/$(UNAUTHORIZED_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(UNAUTHORIZED_NAME) \ + --author "Yves Degoyon" \ + --license "GNU GPL" \ + --description "GUI and streaming objects" install -p $(externals_src)/unauthorized/*/*.$(EXTENSION) \ $(objectsdir)/$(UNAUTHORIZED_NAME) install -d $(helpdir)/$(UNAUTHORIZED_NAME) @@ -505,7 +592,7 @@ devsymlinks: #==============================================================================# # the destination-specific clean targets are in Makefile.buildlayout -clean: install_clean +clean: smlib_clean install_clean cd $(externals_src)/build/$(OS_NAME) && make $(DEST_PATHS) clean cd $(externals_src)/hcs/hid && make $(DEST_PATHS) clean cd $(externals_src)/OSCx && make $(DEST_PATHS) clean diff --git a/externals/Makefile.buildlayout b/externals/Makefile.buildlayout index 5bc5f28b..6a2dab6d 100644 --- a/externals/Makefile.buildlayout +++ b/externals/Makefile.buildlayout @@ -40,7 +40,6 @@ UNAME := $(shell uname -s) ifeq ($(UNAME),Linux) OS_NAME = linux EXTENSION = pd_linux - prefix = /usr/local else ifeq ($(UNAME),Darwin) OS_NAME = darwin @@ -150,7 +149,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) # release version for this distro -PACKAGE_VERSION = extended-RC5 +PACKAGE_VERSION = extended-RC6 PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION) diff --git a/externals/build/TODO b/externals/build/TODO index ad5d4e12..b8492818 100644 --- a/externals/build/TODO +++ b/externals/build/TODO @@ -1,6 +1,7 @@ -- incorporate %.c building into cross-platform Makefile, and have it work with - subdirectories so that libdirs can be compiled here. +- document smlib building + +- add "test lib" functionality to binary building in externals/Makefile - simplify Makefile, making just "all" and "install" with subsections for each subdir. diff --git a/packages/Makefile b/packages/Makefile index b149cc43..0bad98cc 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -395,29 +395,34 @@ LICENSE_FILE = $(manualsdir)/$(PD_NAME)/License.html license_install: # generate HTML version of License install -d $(manualsdir)/$(PD_NAME) + -rm $(LICENSE_FILE) touch $(LICENSE_FILE) echo "" >> "$(LICENSE_FILE)" echo "

(Parts of this package can be used under " >> "$(LICENSE_FILE)" - echo "Pd"s BSD license)

" >> "$(LICENSE_FILE)" + echo "Pd"s BSD license)" >> "$(LICENSE_FILE)" echo "" >> "$(LICENSE_FILE)" cat "$(externals_src)/creb/COPYING" | sed -e 's/^$$/\/g' >> "$(LICENSE_FILE)" echo "" >> $(LICENSE_FILE) # Pd's license file - install -p "$(pd_src)/LICENSE.txt" "$(manualsdir)/$(PD_NAME)/PD LICENSE.txt" + install -p "$(pd_src)/LICENSE.txt" "$(manualsdir)/$(PD_NAME)/Pd-LICENSE.txt" WELCOME_FILE = $(manualsdir)/$(PD_NAME)/Welcome.html welcome_install: install -d $(manualsdir)/$(PD_NAME) + -rm $(WELCOME_FILE) touch $(WELCOME_FILE) - echo "

" >> $(WELCOME_FILE) - echo "

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

" >> $(WELCOME_FILE) + echo "

" >> $(WELCOME_FILE) echo "

Version $(PD_VERSION)

" >> $(WELCOME_FILE) - echo "

written by Miller S. Puckette

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

written by Miller S. Puckette

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

`grep -A9 ACKNOWLEDG $(pd_src)/README.txt`

" >> $(WELCOME_FILE) - echo "
" >> $(WELCOME_FILE) + echo "
" >> $(WELCOME_FILE) echo "" >> $(WELCOME_FILE) @@ -431,14 +436,26 @@ readme_install: echo "" >> $(README_FILE) echo "" >> $(README_FILE) echo "" >> $(README_FILE) + echo "" >> $(README_FILE) echo "" >> $(README_FILE) echo "" >> $(README_FILE) echo "

Pure Data $(PD_VERSION)-$(PACKAGE_VERSION)

" >> $(README_FILE) echo "

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.

" >> $(README_FILE) echo "

For more information, go to: http://puredata.org

" >> $(README_FILE) echo "

Installation

" >> $(README_FILE) + echo "
GNU/Linux
" >> $(README_FILE) + echo "

" >> $(README_FILE) + echo "

" >> $(README_FILE) + echo "
Mac OS X
" >> $(README_FILE) + echo "
" >> $(README_FILE) echo "

To install Pd, drag the Pd.app to anywhere in your hard disk.

" >> $(README_FILE) echo "

To install Gem, pmpd, xsample, dyn~, and vasp support, copy org.puredata.pd.plist to ~/Library/Preferences (~ means your home folder). WARNING: this will overwrite any existing Pd preferences!

" >> $(README_FILE) + echo "
" >> $(README_FILE) + echo "
Windows
" >> $(README_FILE) + echo "

To install, run the installer.

" >> $(README_FILE) + echo "

To make sure that all of the libraries are loaded when Pd runs, " >> $(README_FILE) + echo "double-click C:\Program Files\pd\pd-settings.reg to import the settings to the registry.

" >> $(README_FILE) + echo "
" >> $(README_FILE) echo "

Pure Data CVS Developers

" >> $(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 '' | sed 's|\(href="\)|target="w" \1http://sourceforge.net|' >> $(README_FILE) @@ -448,7 +465,7 @@ readme_install: echo "

" >> $(README_FILE) echo "

License

" >> $(README_FILE) echo "

" >> $(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 "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 "

" >> $(README_FILE) echo "

Included Versions

" >> $(README_FILE) echo "

These externals are all included from the Pd CVS repository:

" >> $(README_FILE) diff --git a/packages/Makefile.buildlayout b/packages/Makefile.buildlayout index 5bc5f28b..6a2dab6d 100644 --- a/packages/Makefile.buildlayout +++ b/packages/Makefile.buildlayout @@ -40,7 +40,6 @@ UNAME := $(shell uname -s) ifeq ($(UNAME),Linux) OS_NAME = linux EXTENSION = pd_linux - prefix = /usr/local else ifeq ($(UNAME),Darwin) OS_NAME = darwin @@ -150,7 +149,7 @@ PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) # release version for this distro -PACKAGE_VERSION = extended-RC5 +PACKAGE_VERSION = extended-RC6 PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION) diff --git a/packages/TODO b/packages/TODO index 7fe8857c..7c454300 100644 --- a/packages/TODO +++ b/packages/TODO @@ -1,4 +1,6 @@ +- document generate-libdir-metafile.sh + - move darwin_app_perms to here and make generic prerelease_clean target which is called separately diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile index 3039ab77..4f6cb658 100644 --- a/packages/darwin_app/Makefile +++ b/packages/darwin_app/Makefile @@ -145,8 +145,11 @@ DMG_NAME = $(PACKAGE_NAME) dmg: darwin_app_perms install -d "$(CWD)/$(DMG_NAME)" cd $(BUILD_BASE) && mv $(PD_APP_NAME).app "$(CWD)/$(DMG_NAME)/" -# install -p -m0444 $(manualsdir)/$(PD_NAME)/PD\ LICENSE.txt \ -# $(manualsdir)/*.html "$(CWD)/$(DMG_NAME)" + install -p -m0444 $(manualsdir)/Pd/Pd-LICENSE.txt \ + $(manualsdir)/Pd/License.html \ + $(manualsdir)/Pd/Welcome.html \ + $(manualsdir)/Pd/ReadMe.html \ + "$(CWD)/$(DMG_NAME)" install -p -m0444 org.puredata.pd.plist "$(CWD)/$(DMG_NAME)" cd $(CWD) && /bin/sh mkdmg "$(DMG_NAME)" diff --git a/packages/darwin_app/org.puredata.pd.plist b/packages/darwin_app/org.puredata.pd.plist index 0f3370c1..f1a415bb 100644 --- a/packages/darwin_app/org.puredata.pd.plist +++ b/packages/darwin_app/org.puredata.pd.plist @@ -2,25 +2,33 @@ + standardpath + 1 loadlib1 Gem loadlib2 - xsample + cyclone loadlib3 - vasp + iemabs loadlib4 - dyn~ + iemmatrix loadlib5 - pmpd + memento loadlib6 - cyclone + pixeltango loadlib7 - memento + pmpd loadlib8 - toxy + rradical loadlib9 - - standardpath - 1 + toxy + loadlib10 + unauthorized + loadlib11 + vasp + loadlib12 + xsample + loadlib13 + zexy diff --git a/packages/win32_inno/TODO b/packages/win32_inno/TODO index 278207ee..3a82f593 100644 --- a/packages/win32_inno/TODO +++ b/packages/win32_inno/TODO @@ -1,7 +1,7 @@ -- add SMlib from email from Anders +- Another detail is that the menu item "help/1 manual" results in no action - possibly some link pointing to the wrong place? -- add Gem to noncvs +- add SMlib from email from Anders - get Pd compiling on MinGW:. From Carmen: @@ -15,8 +15,4 @@ - menu_openhtml on Win32 with rundll should be able to open other filetypes like open on MACOSX. -- fix PD_VERSION, the sed patterns aren't working - -- figure out why MinGW-compiled "unauthorized" externals don't work - -- get Windows Makefiles for Gem, unauthorized +- get Windows Makefiles for Gem -- cgit v1.2.1