[PD-cvs] abstractions Makefile,1.1,1.2 README,1.1,1.2
Hans-Christoph Steiner
eighthave at users.sourceforge.net
Wed Nov 16 01:15:16 CET 2005
Update of /cvsroot/pure-data/abstractions
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2081
Modified Files:
Makefile README
Log Message:
first stab at a nice abstractions build system
Index: README
===================================================================
RCS file: /cvsroot/pure-data/abstractions/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** README 6 Nov 2003 09:36:02 -0000 1.1
--- README 16 Nov 2005 00:15:14 -0000 1.2
***************
*** 2,28 ****
=================================
! This is a collection of abstractions for Pd. Pd is a
! language that is very low-level. There are several
! concepts that need a certain amount of work in 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.
How to add your abstractions ?
==============================
! First rule for adding an abstraction is that it is written
! in Pd (without using externals).
! You can either send your abstarction 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.
- Guenter
--- 2,87 ----
=================================
! This is a collection of abstractions for Pd. Pd is a language that is very
! low-level. There are several concepts that need a certain amount of work in
! 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_DST):
! 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.
! This directory is a browsable collection of applications. If your
! application has a lot of files associated with it, put a main patch and
! have the extra files in a subdirectory. rradical/usecases/showcase is a
! good example of this. This is the only place were mixed or upper case is
! appropriate in directory names.
!
! $(OBJECTS_DST):
! 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_DST):
! All help patches should go into this directory in a subdirectory with the
! same nameas the subdirectory for your objects. For example, for
! [mylibrary/myobject] above, the helpfile would be "mylibrary/myobject-help.pd".
!
! The subdirectory name (e.g. mylibrary) should always be all lowercase.
!
! $(MANUALS_DST):
! 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
! subdirectory with the same name as the library or application. Using the
! previous example again, the "mylibrary" manual would be
! "mylibrary/mylibrary.html".
!
! 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,
! 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" 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
!
!
Index: Makefile
===================================================================
RCS file: /cvsroot/pure-data/abstractions/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Makefile 15 Jan 2004 02:06:51 -0000 1.1
--- Makefile 16 Nov 2005 00:15:14 -0000 1.2
***************
*** 1,31 ****
! # Created by Hans-Christoph Steiner <hans at eds.org> to generate MacOS X packages
! # This Makefile does not generate a PDDP pkg, PDDP has its own Makefile
! current: darwin_pkg
! ABSTRACTIONS_VERSION = $(shell date +20%y.%m.%d)
! PKG_PREFIX = pd-abstractions
! PKG_NAME = $(PKG_PREFIX)-$(ABSTRACTIONS_VERSION)
! darwin_pkg_clean:
! -sudo rm -Rf installroot/ $(PKG_PREFIX)*.pkg/
! -rm -f $(PKG_NAME).info 1
! # install into MSP's default: /usr/local/lib
! darwin_pkg:
! # set up installroot dir
! -chmod a-x */*.pd */*/*.pd */*/*/*.pd
! test -d installroot/abstractions || mkdir -p installroot/abstractions
! cp -Rf footils timestretch vadsr~ installroot/abstractions/
! cp -f pd-abstractions.info $(PKG_NAME).info
! # delete cruft
! -find installroot -name .DS_Store -delete
! -sudo rm -Rf installroot/*/*/CVS installroot/*/*/*/CVS installroot/*/*/*/*/CVS
! # set proper permissions
! sudo chown -R root:staff installroot/*
! package installroot $(PKG_NAME).info -d . -ignoreDSStore
! # install pkg docs
! install -m 644 Welcome.html $(PKG_NAME).pkg/Contents/Resources
! sudo chown -R root:staff $(PKG_NAME).pkg/Contents/Resources
--- 1,108 ----
! #
! # Centralized build system for "abstractions".
! #
! # see README for instructions <hans at at.or.at>
! #
! # these are setup to be overridden by the packages/*/Makefiles
! SRC_ROOT_DIR := $(shell pwd)/..
! INSTALL_PREFIX = build
! DOCS_BASE = $(INSTALL_PREFIX)/doc
! # sources
! ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
! # destinations
! APPLICATIONS_DST = $(DOCS_BASE)/examples
! OBJECTS_DST = $(INSTALL_PREFIX)/extra
! DOCS_DST = $(DOCS_BASE)/5.reference
! MANUALS_DST = $(DOCS_BASE)/manuals
! #------------------------------------------------------------------------------#
! # DIRECTORY STRUCTURE TARGETS
! #------------------------------------------------------------------------------#
! # first make sure that the directory structure is setup
! $(INSTALL_PREFIX):
! install -d $(INSTALL_PREFIX)
! $(APPLICATIONS_DST): $(INSTALL_PREFIX)
! install -d $(APPLICATIONS_DST)
!
! $(OBJECTS_DST): $(INSTALL_PREFIX)
! install -d $(OBJECTS_DST)
!
! $(DOCS_DST): $(INSTALL_PREFIX)
! install -d $(DOCS_DST)
!
! $(MANUALS_DST): $(INSTALL_PREFIX)
! install -d $(MANUALS_DST)
!
!
! #------------------------------------------------------------------------------#
! # OVERARCHING BUILD TARGETS
! #------------------------------------------------------------------------------#
+ all: objects applications
+
+ final_setup:
+ chmod -R ugo-w $(INSTALL_PREFIX)
+
+ objects: $(OBJECTS_DST) $(DOCS_DST) $(MANUALS_DST)
+ objects: objects_rradical objects_memento
+
+ applications: $(APPLICATIONS_DST) $(MANUALS_DST)
+ applications: applications_rradical
+
+
+ #------------------------------------------------------------------------------#
+ # PROJECT TARGETS
+ #------------------------------------------------------------------------------#
+
+ #------------------------------
+ # RRADICAL
+ objects_rradical:
+ install -d $(OBJECTS_DST)/memento
+
+ applications_rradical:
+ install -d $(APPLICATIONS_DST)/RRADical
+ install -p $(ABSTRACTIONS_SRC)/rradical/usecases/*.* $(APPLICATIONS_DST)/RRADical
+ cp -rp $(ABSTRACTIONS_SRC)/rradical/usecases/showcase $(APPLICATIONS_DST)/RRADical/
+
+ #------------------------------
+ # MEMENTO
+ objects_memento:
+ install -d $(OBJECTS_DST)/memento
+ install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/rradical/memento/*.pd | \
+ grep -v -e '-help.pd$$') $(OBJECTS_DST)/memento
+ install -d $(DOCS_DST)/memento
+ install -p $(ABSTRACTIONS_SRC)/rradical/memento/*-help.pd $(DOCS_DST)/memento
+ install -d $(MANUALS_DST)/memento
+ install -p $(ABSTRACTIONS_SRC)/rradical/memento/tutorial/*.* \
+ $(MANUALS_DST)/memento
+ install -d $(APPLICATIONS_DST)/memento_tutorial
+ install -p $(ABSTRACTIONS_SRC)/rradical/memento/examples/*.* \
+ $(APPLICATIONS_DST)/memento_tutorial
+
+ #------------------------------------------------------------------------------#
+ # CLEAN TARGETS
+ #------------------------------------------------------------------------------#
+ objects_clean:
+ -rm -rf $(OBJECTS_DST) $(DOCS_DST)
+
+ applications_clean:
+ -rm -rf $(APPLICATIONS_DST)
+
+
+ clean: applications_clean objects_clean
+ -rm -f *~
+ rm -rf $(MANUALS_DST)
+ rmdir $(DOCS_BASE) $(INSTALL_PREFIX)
+
+
+ #------------------------------------------------------------------------------#
+ # LEGACY TARGETS
+ #------------------------------------------------------------------------------#
+ # this is a legacy clean target to get rid of cruft
+ darwin_pkg_clean:
+ -sudo rm -Rf installroot/ $(PKG_PREFIX)*.pkg/
+ -rm -f $(PKG_NAME).info 1
More information about the Pd-cvs
mailing list