[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