Update of /cvsroot/pure-data/abstractions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2511
Modified Files: Makefile README Log Message: added MYLIBRARY_NAME variables
Index: README =================================================================== RCS file: /cvsroot/pure-data/abstractions/README,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** README 16 Nov 2005 06:22:55 -0000 1.3 --- README 16 Nov 2005 18:23:47 -0000 1.4 *************** *** 1,2 **** --- 1,3 ---- + Collection of abstractions for Pd ================================= *************** *** 6,41 **** order to be implemented. Instead of reimplementing these higher level concepts again and again, this collection of abstractions try to establish a layer of ! Pd abstractions that should grow into a reusable library that can be shared by ! Pd users.
What kind of abstractions? ==========================
! One of the problems with organizing all this is the vague definition of ! "abstraction" and "external". "application" and "object" are much more ! useful distinctions. Therefore, there are two sections to the build system, ! one for Pd patches which are objects, and another for Pd patches that are ! "applications" (also examples, demos, etc.).
- How to add your abstractions ? - ==============================
! First rule for adding an abstraction is that it is written in Pd, without ! using externals whenever possible. Otherwise, it should work with the ! Pd-extended builds.
You can either send your abstraction with the request for adding it to the ! pd-dev list, or if you are a Pd developer already, you can add them by ! yourself.
- If you have questions about how, feel free to ask.
- I hope that we can come up with a style guide for abstractions at some point, - but we need to gather experience how this should look like before.
Explanations of Terms =====================
$(APPLICATIONS_DEST): If your project is an application or patch that is meant to be run directly, then it should go into this directory in its own subdirectory. --- 7,102 ---- order to be implemented. Instead of reimplementing these higher level concepts again and again, this collection of abstractions try to establish a layer of ! Pd abstractions that are reusable libraries that can be shared by Pd users. !
What kind of abstractions? ==========================
! One of the problems with organizing all this is the vague definition of ! "abstraction" and "external". "application" and "object" are much more useful ! distinctions. Therefore, there are two sections to the build system, one for ! Pd patches which are objects, and another for Pd patches that are ! "applications" (also examples, demos, etc.).
! Criteria for Adding Patches ! =========================== ! ! Patches that are added to this section ideally should be written using only ! core Pd objects, without using externals whenever possible. If that if not ! possible, then it should work with the externals included with the Pd-extended ! builds.
You can either send your abstraction with the request for adding it to the ! pd-dev list, or if you are a member of the SourceForge project already, you ! can add them by yourself. ! ! If you have questions, please post them to the pd-dev list. You can find all ! of the mailing lists here: http://puredata.org/community/lists ! ! We are working on a style guide, you can see the current rendition in CVS in ! doc/pddp/pddp_style_guide.pd ! ! ! How to add your library of patches ! ================================== ! ! 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 ! replacements will preversing the case of the text it is replacing. For ! example, replacing "memento" with "mylibrary" will make these changes: ! ! MEMENTO_NAME = memento ! objects_memento: ! ! to this: ! ! MYLIBRARY_NAME = mylibrary ! objects_mylibrary: ! ! If your editor does not do this, you will need to do two separate ! search-and-replace actions, one for all lowercase, and another for all ! uppercase. ! ! Once you have your section setup after the search-and-replace, you need to ! edit the paths of the files that you want to include. The paths will be the ! only text written out. All of the installation paths will be Makefile ! variables. Check the below example: ! ! install -d $(HELP_DEST)/$(MEMENTO_NAME) ! install -p $(ABSTRACTIONS_SRC)/rradical/memento/*-help.pd \ ! $(HELP_DEST)/$(MEMENTO_NAME) ! ! becomes: ! ! install -d $(HELP_DEST)/$(MYLIBRARY_NAME) ! install -p $(ABSTRACTIONS_SRC)/mylibrary/*-help.pd \ ! $(HELP_DEST)/$(MYLIBRARY_NAME) ! ! ! Also, since it is common to store the help patches in the same directory as ! the object patchs, you can use this pattern to exclude the help patches from ! being copied to $(OBJECTS_DEST): ! ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/mylibrary/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(MYLIBRARY_NAME) !
Explanations of Terms =====================
+ MYLIBRARY_NAME = mylibrary + + At the top of each library's section in the Makefile, you will see a + variable MYLIBRARY_NAME. This variable is the name used to install the + abstractions. This should be all lowercase since its used in the loading + of objects within Pd (e.g. [mylibrary/myobject]). + + $(APPLICATIONS_DEST): + If your project is an application or patch that is meant to be run directly, then it should go into this directory in its own subdirectory. *************** *** 46,59 **** appropriate in directory names.
- $(OBJECTS_DEST): - If your project consists of objects that are meant to be reused in other - patches rather than used as a application, then they should go into this - directory. - - They should be in a directory with a distinct name. This will be the name - of your library of objects, which can be added to the path, or called - directly (e.g. [mylibrary/myobject]). - - The subdirectory name (e.g. mylibrary) should always be all lowercase.
$(DOCS_DEST): --- 107,110 ---- *************** *** 64,68 **** --- 115,121 ---- The subdirectory name (e.g. mylibrary) should always be all lowercase.
+ $(MANUALS_DEST): + If you have any other kinds of documentation, like a text or HTML manual, or a Pd-based tutorial, then it should go into this directory, again in a *************** *** 73,77 **** The subdirectory name (e.g. mylibrary) should always be all lowercase.
! "objects" target: 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, --- 126,144 ---- The subdirectory name (e.g. mylibrary) should always be all lowercase.
! ! $(OBJECTS_DEST): ! ! If your project consists of objects that are meant to be reused in other ! patches rather than used as a application, then they should go into this ! directory. ! ! They should be in a directory with a distinct name. This will be the name ! of your library of objects, which can be added to the path, or called ! directly (e.g. [mylibrary/myobject]). ! ! 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, *************** *** 80,84 **** and any other documentation.
! "applications" target: This target is meant for any patch that is intended to be opened up and used, played, ran, etc. The RRADical showcase is a good example --- 147,152 ---- 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 showcase is a good example
Index: Makefile =================================================================== RCS file: /cvsroot/pure-data/abstractions/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile 16 Nov 2005 16:56:01 -0000 1.6 --- Makefile 16 Nov 2005 18:23:47 -0000 1.7 *************** *** 1,2 **** --- 1,3 ---- + #==============================================================================# # # Centralized build system for "abstractions". *************** *** 4,7 **** --- 5,9 ---- # see README for instructions hans@at.or.at # + #==============================================================================#
# these are setup to be overridden by the packages/*/Makefiles *************** *** 14,20 **** include Makefile.dirs
! #------------------------------------------------------------------------------# # OVERARCHING BUILD TARGETS ! #------------------------------------------------------------------------------#
final_setup: --- 16,24 ---- include Makefile.dirs
! #==============================================================================# ! # # OVERARCHING BUILD TARGETS ! # ! #==============================================================================#
final_setup: *************** *** 29,133 ****
! #------------------------------------------------------------------------------# # PROJECT TARGETS ! #------------------------------------------------------------------------------# ! #------------------------------ # GYRE objects_gyre: ! install -d $(OBJECTS_DEST)/gyre install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.*.pd \ ! $(OBJECTS_DEST)/gyre ! install -d $(MANUALS_DEST)/gyre install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.html \ ! $(MANUALS_DEST)/gyre
applications_gyre: ! install -d $(APPLICATIONS_DEST)/gyre install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.pd \ ! $(APPLICATIONS_DEST)/GYRE
! #------------------------------ # keyboardkeys objects_keyboardkeys: ! install -d $(OBJECTS_DEST)/keyboardkeys ! install -p $(ABSTRACTIONS_SRC)/keyboardkeys/keyboardkeys/*.pd \ ! $(OBJECTS_DEST)/keyboardkeys ! install -d $(HELP_DEST)/keyboardkeys ! install -p $(ABSTRACTIONS_SRC)/keyboardkeys/doc/*-help.pd \ ! $(HELP_DEST)/keyboardkeys
applications_keyboardkeys: ! install -d $(APPLICATIONS_DEST)/keyboardkeys ! install -p $(ABSTRACTIONS_SRC)/keyboardkeys/keyboard_main.pd \ ! $(APPLICATIONS_DEST)/keyboardkeys
! #------------------------------ # la-kitchen objects_la-kitchen: ! install -d $(OBJECTS_DEST)/la-kitchen install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/La-kitchen/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/la-kitchen ! install -d $(HELP_DEST)/la-kitchen install -p $(ABSTRACTIONS_SRC)/La-kitchen/*-help.pd \ ! $(HELP_DEST)/la-kitchen ! install -d $(MANUALS_DEST)/la-kitchen install -p $(ABSTRACTIONS_SRC)/La-kitchen/readme.txt \ ! $(MANUALS_DEST)/la-kitchen
! #------------------------------ # memento objects_memento: ! install -d $(OBJECTS_DEST)/memento install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/memento/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/memento ! install -d $(HELP_DEST)/memento ! install -p $(ABSTRACTIONS_SRC)/rradical/memento/*-help.pd $(HELP_DEST)/memento ! install -d $(MANUALS_DEST)/memento install -p $(ABSTRACTIONS_SRC)/rradical/memento/tutorial/*.* \ ! $(MANUALS_DEST)/memento ! install -d $(APPLICATIONS_DEST)/memento_tutorial install -p $(ABSTRACTIONS_SRC)/rradical/memento/examples/*.* \ ! $(APPLICATIONS_DEST)/memento_tutorial
! #------------------------------ # nqpoly ! objects_nqpoly: ! install -d $(OBJECTS_DEST)/nqpoly~ ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/nqpoly~ ! install -d $(OBJECTS_DEST)/nqpoly4 ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/nqpoly4 ! install -d $(HELP_DEST)/nqpoly~ ! install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd $(HELP_DEST)/nqpoly~ ! install -d $(HELP_DEST)/nqpoly4 ! install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd $(HELP_DEST)/nqpoly4 install -d $(MANUALS_DEST)/nqpoly install -p $(ABSTRACTIONS_SRC)/nqpoly/*.html $(MANUALS_DEST)/nqpoly install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/readme.txt \ $(MANUALS_DEST)/nqpoly/nqpoly~.txt ! install -d $(APPLICATIONS_DEST)/nqpoly~ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd | \ ! grep -v '-help.pd') $(APPLICATIONS_DEST)/nqpoly~ ! install -d $(APPLICATIONS_DEST)/nqpoly4 ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd | \ ! grep -v '-help.pd') $(APPLICATIONS_DEST)/nqpoly4
! #------------------------------ # nusmuk objects_nusmuk: ! install -d $(OBJECTS_DEST)/nusmuk install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nusmuk/*.* | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/nusmuk ! install -d $(HELP_DEST)/nusmuk ! install -p $(ABSTRACTIONS_SRC)/nusmuk/*-help.pd $(HELP_DEST)/nusmuk
! #------------------------------ # parazit install -d $(OBJECTS_DEST) --- 33,159 ----
! #==============================================================================# ! # # PROJECT TARGETS ! # ! #==============================================================================# ! ! #------------------------------------------------------------------------------- # GYRE + GYRE_NAME = gyre objects_gyre: ! install -d $(OBJECTS_DEST)/$(GYRE_NAME) install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.*.pd \ ! $(OBJECTS_DEST)/$(GYRE_NAME) ! install -d $(MANUALS_DEST)/$(GYRE_NAME) install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.html \ ! $(MANUALS_DEST)/$(GYRE_NAME)
applications_gyre: ! install -d $(APPLICATIONS_DEST)/$(GYRE_NAME) install -p $(ABSTRACTIONS_SRC)/audionerd/GYRE/gyre.pd \ ! $(APPLICATIONS_DEST)/$(GYRE_NAME)
! #------------------------------------------------------------------------------- # keyboardkeys + KEYBOARDKEYS_NAME = keyboardkeys objects_keyboardkeys: ! install -d $(OBJECTS_DEST)/$(KEYBOARDKEYS_NAME) ! install -p $(ABSTRACTIONS_SRC)/$(KEYBOARDKEYS_NAME)/abs/*.pd \ ! $(OBJECTS_DEST)/$(KEYBOARDKEYS_NAME) ! install -d $(HELP_DEST)/$(KEYBOARDKEYS_NAME) ! install -p $(ABSTRACTIONS_SRC)/$(KEYBOARDKEYS_NAME)/doc/*-help.pd \ ! $(HELP_DEST)/$(KEYBOARDKEYS_NAME)
applications_keyboardkeys: ! install -d $(APPLICATIONS_DEST)/$(KEYBOARDKEYS_NAME) ! install -p $(ABSTRACTIONS_SRC)/$(KEYBOARDKEYS_NAME)/keyboard_main.pd \ ! $(APPLICATIONS_DEST)/$(KEYBOARDKEYS_NAME)
! #------------------------------------------------------------------------------- # la-kitchen + LA-KITCHEN_NAME = la-kitchen objects_la-kitchen: ! install -d $(OBJECTS_DEST)/$(LA-KITCHEN_NAME) install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/La-kitchen/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(LA-KITCHEN_NAME) ! install -d $(HELP_DEST)/$(LA-KITCHEN_NAME) install -p $(ABSTRACTIONS_SRC)/La-kitchen/*-help.pd \ ! $(HELP_DEST)/$(LA-KITCHEN_NAME) ! install -d $(MANUALS_DEST)/$(LA-KITCHEN_NAME) install -p $(ABSTRACTIONS_SRC)/La-kitchen/readme.txt \ ! $(MANUALS_DEST)/$(LA-KITCHEN_NAME)
! #------------------------------------------------------------------------------- # memento + MEMENTO_NAME = memento objects_memento: ! install -d $(OBJECTS_DEST)/$(MEMENTO_NAME) install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/memento/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(MEMENTO_NAME) ! install -d $(HELP_DEST)/$(MEMENTO_NAME) ! install -p $(ABSTRACTIONS_SRC)/rradical/memento/*-help.pd \ ! $(HELP_DEST)/$(MEMENTO_NAME) ! install -d $(MANUALS_DEST)/$(MEMENTO_NAME) install -p $(ABSTRACTIONS_SRC)/rradical/memento/tutorial/*.* \ ! $(MANUALS_DEST)/$(MEMENTO_NAME) ! install -d $(APPLICATIONS_DEST)/$(MEMENTO_NAME) install -p $(ABSTRACTIONS_SRC)/rradical/memento/examples/*.* \ ! $(APPLICATIONS_DEST)/$(MEMENTO_NAME)
! #------------------------------------------------------------------------------- # nqpoly ! objects_nqpoly: objects_nqpoly~ objects_nqpoly4 ! # make a common target for the manuals so they are in one place install -d $(MANUALS_DEST)/nqpoly install -p $(ABSTRACTIONS_SRC)/nqpoly/*.html $(MANUALS_DEST)/nqpoly install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/readme.txt \ $(MANUALS_DEST)/nqpoly/nqpoly~.txt ! ! NQPOLY_NAME = nqpoly~ ! objects_nqpoly~: ! install -d $(OBJECTS_DEST)/$(NQPOLY_NAME) install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(NQPOLY_NAME) ! install -d $(HELP_DEST)/$(NQPOLY_NAME) ! # all of the patches should be installed into help since [nqpoly~] needs to be ! # in the same directory as the patches its manipulating ! install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd \ ! $(HELP_DEST)/$(NQPOLY_NAME) ! install -d $(APPLICATIONS_DEST)/$(NQPOLY_NAME) ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly~/*.pd | \ ! grep -v '-help.pd') $(APPLICATIONS_DEST)/$(NQPOLY_NAME)
! NQPOLY4_NAME = nqpoly4 ! objects_nqpoly4: ! install -d $(OBJECTS_DEST)/$(NQPOLY4_NAME) ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(NQPOLY4_NAME) ! install -d $(HELP_DEST)/$(NQPOLY4_NAME) ! # all of the patches should be installed into help since [nqpoly4] needs to be ! # in the same directory as the patches its manipulating ! install -p $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd $(HELP_DEST)/$(NQPOLY4_NAME) ! install -d $(APPLICATIONS_DEST)/$(NQPOLY4_NAME) ! install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nqpoly/nqpoly4/*.pd | \ ! grep -v '-help.pd') $(APPLICATIONS_DEST)/$(NQPOLY4_NAME) ! ! #------------------------------------------------------------------------------- # nusmuk + NUSMUK_NAME = nusmuk objects_nusmuk: ! install -d $(OBJECTS_DEST)/$(NUSMUK_NAME) install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nusmuk/*.* | \ ! grep -v '-help.pd') $(OBJECTS_DEST)/$(NUSMUK_NAME) ! install -d $(HELP_DEST)/$(NUSMUK_NAME) ! install -p $(ABSTRACTIONS_SRC)/nusmuk/*-help.pd \ ! $(HELP_DEST)/$(NUSMUK_NAME)
! #------------------------------------------------------------------------------- # parazit install -d $(OBJECTS_DEST) *************** *** 135,151 ****
! #------------------------------ # RRADical objects_rradical: ! install -d $(OBJECTS_DEST)/rradical
applications_rradical: ! install -d $(APPLICATIONS_DEST)/RRADical ! install -p $(ABSTRACTIONS_SRC)/rradical/usecases/*.* $(APPLICATIONS_DEST)/RRADical ! cp -rp $(ABSTRACTIONS_SRC)/rradical/usecases/showcase $(APPLICATIONS_DEST)/RRADical/
! #------------------------------------------------------------------------------# # DEVELOPER'S TARGETS ! #------------------------------------------------------------------------------#
# make the symlinks necessary to simulate the installed environment --- 161,182 ----
! #------------------------------------------------------------------------------- # RRADical + RRADICAL_NAME = rradical objects_rradical: ! install -d $(OBJECTS_DEST)/$(RRADICAL_NAME)
applications_rradical: ! install -d $(APPLICATIONS_DEST)/$(RRADICAL_NAME) ! install -p $(ABSTRACTIONS_SRC)/rradical/usecases/*.* \ ! $(APPLICATIONS_DEST)/$(RRADICAL_NAME) ! cp -rp $(ABSTRACTIONS_SRC)/rradical/usecases/showcase \ ! $(APPLICATIONS_DEST)/$(RRADICAL_NAME)/
! #==============================================================================# ! # # DEVELOPER'S TARGETS ! # ! #==============================================================================#
# make the symlinks necessary to simulate the installed environment *************** *** 159,165 **** $(ABSTRACTIONS_SRC)/keyboardkeys/doc/keyboardkeys
! #------------------------------------------------------------------------------# # CLEAN TARGETS ! #------------------------------------------------------------------------------# objects_clean: -rm -rf $(OBJECTS_DEST) $(HELP_DEST) --- 190,199 ---- $(ABSTRACTIONS_SRC)/keyboardkeys/doc/keyboardkeys
! #==============================================================================# ! # # CLEAN TARGETS ! # ! #==============================================================================# ! objects_clean: -rm -rf $(OBJECTS_DEST) $(HELP_DEST) *************** *** 175,181 ****
! #------------------------------------------------------------------------------# # LEGACY TARGETS ! #------------------------------------------------------------------------------# # this is a legacy clean target to get rid of cruft darwin_pkg_clean: --- 209,217 ----
! #==============================================================================# ! # # LEGACY TARGETS ! # ! #==============================================================================# # this is a legacy clean target to get rid of cruft darwin_pkg_clean: