#==============================================================================# # # Centralized build system for "abstractions". # # see for instructions: http://puredata.org/docs/developer/build # # #==============================================================================# CWD := $(shell pwd) # these are designed to be overridden by the packages/Makefile cvs_root_dir := $(shell cd $(CWD)/.. && pwd) DESTDIR = $(CWD)/build/ BUILDLAYOUT_DIR = $(cvs_root_dir)/packages include $(BUILDLAYOUT_DIR)/Makefile.buildlayout #==============================================================================# # # OVERARCHING BUILD TARGETS # #==============================================================================# # if your library isn't included in LIB_TARGETS, it won't be built with # Pd-extended. # # WARNING! this MUST be all on one line because the automatic package # building scripts rely on it being that way. LIB_TARGETS = gyre jmmmp keyboardkeys la-kitchen list-abs memento nusmuk nqpoly parazit pddp pixeltango purepd rradical rtc-lib puremeasurement timestretch sssad # in case anything needs to be compiled or processed somehow before installing all: # clean up after everything is installed final_setup: chmod -R ugo-w $(pddocdir) install: all $(objectsdir) $(helpdir) $(manualsdir) $(examplesdir) \ $(patsubst %, %_install,$(LIB_TARGETS)) @echo " " @echo "abstractions install succeeded!" #==============================================================================# # # PROJECT TARGETS # #==============================================================================# #------------------------------------------------------------------------------- # TEMPLATE TEMPLATE_NAME = template template_install: install -d $(objectsdir)/$(TEMPLATE_NAME) install -p $(abstractions_src)/template/*.pd $(objectsdir)/$(TEMPLATE_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(TEMPLATE_NAME) \ --author "" \ --description "" \ --license "" \ --version "" install -d $(helpdir)/$(TEMPLATE_NAME) install -p $(abstractions_src)/template/help/*-help.pd \ $(helpdir)/$(TEMPLATE_NAME) # install -d $(manualsdir)/$(TEMPLATE_NAME) # install -p $(abstractions_src)/template/doc/*.txt \ # $(manualsdir)/$(TEMPLATE_NAME) # install -d $(readmesdir) # install -p $(abstractions_src)/template/README \ # $(readmesdir)/$(TEMPLATE_NAME).txt #------------------------------------------------------------------------------- # GYRE GYRE_NAME = gyre gyre_install: install -d $(objectsdir)/$(GYRE_NAME) install -p $(abstractions_src)/audionerd/GYRE/gyre.*.pd \ $(objectsdir)/$(GYRE_NAME) install -d $(manualsdir)/$(GYRE_NAME) install -p $(abstractions_src)/audionerd/GYRE/gyre.html \ $(manualsdir)/$(GYRE_NAME) install -d $(examplesdir)/$(GYRE_NAME) install -p $(abstractions_src)/audionerd/GYRE/gyre.pd \ $(examplesdir)/$(GYRE_NAME) #------------------------------------------------------------------------------- # JMMMP JMMMP_NAME = jmmmp jmmmp_install: install -d $(objectsdir)/$(JMMMP_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(JMMMP_NAME) \ --author "Joao Miguel Pais " \ --description "" \ --license "BSD" \ --version "" install -p $(abstractions_src)/jmmmp/*.pd \ $(objectsdir)/$(JMMMP_NAME) install -d $(helpdir)/$(JMMMP_NAME) install -p $(abstractions_src)/jmmmp/*-help.pd \ $(helpdir)/$(JMMMP_NAME) # install -d $(manualsdir)/$(JMMMP_NAME) # install -p $(abstractions_src)/jmmmp/*.html \ # $(manualsdir)/$(JMMMP_NAME) # install -d $(examplesdir)/$(JMMMP_NAME) # install -p $(abstractions_src)/jmmmp/examples/jmmmp.pd \ # $(examplesdir)/$(JMMMP_NAME) install -d $(readmesdir) install -p $(abstractions_src)/jmmmp/jmmmp-ext.txt \ $(readmesdir)/$(JMMMP_NAME).txt #------------------------------------------------------------------------------- # keyboardkeys KEYBOARDKEYS_NAME = keyboardkeys keyboardkeys_install: install -d $(objectsdir)/$(KEYBOARDKEYS_NAME) install -p $(abstractions_src)/$(KEYBOARDKEYS_NAME)/abs/*.pd \ $(objectsdir)/$(KEYBOARDKEYS_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(KEYBOARDKEYS_NAME) \ --author "Andrey Savitsky" \ --description "objects for using keyboard keys for scrolling and selecting" install -d $(helpdir)/$(KEYBOARDKEYS_NAME) install -p $(abstractions_src)/$(KEYBOARDKEYS_NAME)/doc/*-help.pd \ $(helpdir)/$(KEYBOARDKEYS_NAME) install -d $(examplesdir)/$(KEYBOARDKEYS_NAME) install -p $(abstractions_src)/$(KEYBOARDKEYS_NAME)/keyboard_main.pd \ $(examplesdir)/$(KEYBOARDKEYS_NAME) #------------------------------------------------------------------------------- # list-abs LIST-ABS_NAME = list-abs list-abs_install: install -d $(objectsdir)/$(LIST-ABS_NAME) install -p $(shell ls -1 $(abstractions_src)/footils/list-abs/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(LIST-ABS_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(LIST-ABS_NAME) \ --author "Frank Barknecht" \ --license "GNU GPL" \ --description "a collection of objects for manipulating lists. Requires pd>=0.39" install -d $(helpdir)/$(LIST-ABS_NAME) install -p $(abstractions_src)/footils/list-abs/*-help.pd \ $(helpdir)/$(LIST-ABS_NAME) #------------------------------------------------------------------------------- # la-kitchen LA-KITCHEN_NAME = la-kitchen la-kitchen_install: install -d $(objectsdir)/$(LA-KITCHEN_NAME) install -p $(shell ls -1 $(abstractions_src)/La-kitchen/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(LA-KITCHEN_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(LA-KITCHEN_NAME) \ --author "Charles Verron" \ --description "a collection of objects working with sensors" install -d $(helpdir)/$(LA-KITCHEN_NAME) install -p $(abstractions_src)/La-kitchen/*-help.pd \ $(helpdir)/$(LA-KITCHEN_NAME) # install -d $(manualsdir)/$(LA-KITCHEN_NAME) # install -p $(abstractions_src)/La-kitchen/doc/*.* \ # $(manualsdir)/$(LA-KITCHEN_NAME) install -d $(readmesdir) install -p $(abstractions_src)/La-kitchen/readme.txt \ $(readmesdir)/$(LA_KITCHEN_NAME).txt #------------------------------------------------------------------------------- # memento MEMENTO_NAME = memento memento_install: install -d $(objectsdir)/$(MEMENTO_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/memento/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(MEMENTO_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(MEMENTO_NAME) \ --author "Frank Barknecht" \ --license "GNU GPL" \ --description "a collection of objects for managing state saving" install -d $(helpdir)/$(MEMENTO_NAME) install -p $(abstractions_src)/rradical/memento/*-help.pd \ $(helpdir)/$(MEMENTO_NAME) install -d $(manualsdir)/$(MEMENTO_NAME) install -p $(abstractions_src)/rradical/memento/tutorial/*.* \ $(manualsdir)/$(MEMENTO_NAME) install -d $(examplesdir)/$(MEMENTO_NAME) install -p $(abstractions_src)/rradical/memento/examples/*.* \ $(examplesdir)/$(MEMENTO_NAME) #------------------------------------------------------------------------------- # nqpoly nqpoly_install: nqpoly_install~ nqpoly_install4 # make a common target for the manuals so they are in one place install -d $(manualsdir)/nqpoly install -p $(abstractions_src)/nqpoly/*.html $(manualsdir)/nqpoly install -p $(abstractions_src)/nqpoly/nqpoly~/readme.txt \ $(manualsdir)/nqpoly/nqpoly~.txt NQPOLY_NAME = nqpoly~ nqpoly_install~: install -d $(objectsdir)/$(NQPOLY_NAME) install -p $(shell ls -1 $(abstractions_src)/nqpoly/nqpoly~/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(NQPOLY_NAME) install -d $(helpdir)/$(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 \ $(helpdir)/$(NQPOLY_NAME) install -d $(examplesdir)/$(NQPOLY_NAME) install -p $(shell ls -1 $(abstractions_src)/nqpoly/nqpoly~/*.pd | \ grep -v '\-help.pd') $(examplesdir)/$(NQPOLY_NAME) NQPOLY4_NAME = nqpoly4 nqpoly_install4: install -d $(objectsdir)/$(NQPOLY4_NAME) install -p $(shell ls -1 $(abstractions_src)/nqpoly/nqpoly4/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(NQPOLY4_NAME) install -d $(helpdir)/$(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 $(helpdir)/$(NQPOLY4_NAME) # install just the help file into the root helpdir since this isn't a libdir install -p $(abstractions_src)/nqpoly/*/*-help.pd $(helpdir) install -d $(examplesdir)/$(NQPOLY4_NAME) install -p $(shell ls -1 $(abstractions_src)/nqpoly/nqpoly4/*.pd | \ grep -v '\-help.pd') $(examplesdir)/$(NQPOLY4_NAME) #------------------------------------------------------------------------------- # nusmuk NUSMUK_NAME = nusmuk nusmuk_install: install -d $(objectsdir)/$(NUSMUK_NAME) install -p $(shell ls -1 $(abstractions_src)/nusmuk/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(NUSMUK_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(NUSMUK_NAME) \ --author "Cyrille Henry" \ --description "a collection of objects for physical modelling" install -d $(helpdir)/$(NUSMUK_NAME) install -p $(abstractions_src)/nusmuk/*-help.pd \ $(helpdir)/$(NUSMUK_NAME) install -p $(abstractions_src)/nusmuk/*.wav \ $(helpdir)/$(NUSMUK_NAME) #------------------------------------------------------------------------------- # parazit parazit_install: install -d $(objectsdir) install -p $(abstractions_src)/parazit/parazit.pd $(objectsdir) install -d $(helpdir) install -p $(abstractions_src)/parazit/parazit-help.pd $(helpdir) #------------------------------------------------------------------------------- # PDDP support lib PDDP_NAME = pddp pddp_install: install -d $(objectsdir)/$(PDDP_NAME) install -p $(shell ls -1 $(abstractions_src)/pddp/*.pd | \ grep -v '\-help.pd') $(objectsdir)/$(PDDP_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(PDDP_NAME) \ --license "GNU GPL" \ --description "support objects for the Pure Data Documentation Project" install -d $(helpdir)/$(PDDP_NAME) install -p $(abstractions_src)/pddp/*-help.pd \ $(helpdir)/$(PDDP_NAME) # install -d $(manualsdir)/$(PDDP_NAME) # install -d $(examplesdir)/$(PDDP_NAME) #------------------------------------------------------------------------------- # pixeltango PIXELTANGO_NAME = pixeltango 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 $(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/*.* \ $(helpdir)/$(PIXELTANGO_NAME) install -d $(examplesdir)/$(PIXELTANGO_NAME) install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \ $(examplesdir)/$(PIXELTANGO_NAME) install -d $(manualsdir)/$(PIXELTANGO_NAME) install -p $(abstractions_src)/pixelTANGO/*.txt \ $(manualsdir)/$(PIXELTANGO_NAME) install -p $(abstractions_src)/pixelTANGO/dev-notes/*.txt \ $(manualsdir)/$(PIXELTANGO_NAME) pixeltango_clean: -rm -f -- $(objectsdir)/$(PIXELTANGO_NAME)/fx/*.* -rmdir -- $(objectsdir)/$(PIXELTANGO_NAME)/fx -rm -f -- $(objectsdir)/$(PIXELTANGO_NAME)/*.* -rmdir -- $(objectsdir)/$(PIXELTANGO_NAME) -rm -f -- $(examplesdir)/$(PIXELTANGO_NAME)/*.* -rmdir -- $(examplesdir)/$(PIXELTANGO_NAME) -rm -f -- $(manualsdir)/$(PIXELTANGO_NAME)/*.* -rmdir -- $(manualsdir)/$(PIXELTANGO_NAME) #------------------------------------------------------------------------------- # PUREPD PUREPD_NAME = purepd purepd_install: install -d $(objectsdir)/$(PUREPD_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(PUREPD_NAME) \ --license "GNU GPL" \ --description "existing objects reimplemented in Pd" install -p $(abstractions_src)/purepd/*.pd \ $(objectsdir)/$(PUREPD_NAME) # temp hack, to make these available to anything until they get settled into a # proper lib install -p $(abstractions_src)/purepd/*_argument.pd \ $(objectsdir) purepd_clean: rm -f -- $(objectsdir)/$(PUREPD_NAME)/*.* rmdir -- $(objectsdir)/$(PUREPD_NAME) #------------------------------------------------------------------------------- # RRADical RRADICAL_NAME = rradical rradical_install: install -d $(objectsdir)/$(RRADICAL_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(RRADICAL_NAME) \ --author "Frank Barknecht" \ --license "GNU GPL" install -d $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/control/*.* | \ grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/effects/*.* | \ grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/instruments/*.* | \ grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -p $(shell ls -1 $(abstractions_src)/rradical/stuff/*.* | \ grep -v '\-help.pd') $(objectsdir)/$(RRADICAL_NAME) install -d $(helpdir)/$(RRADICAL_NAME) install -p $(abstractions_src)/rradical/*/*-help.pd \ $(helpdir)/$(RRADICAL_NAME) install -d $(examplesdir)/$(RRADICAL_NAME) install -p $(abstractions_src)/rradical/usecases/*.* \ $(examplesdir)/$(RRADICAL_NAME) install -d $(examplesdir)/$(RRADICAL_NAME)/showcase install -p $(abstractions_src)/rradical/usecases/showcase/*.* \ $(examplesdir)/$(RRADICAL_NAME)/showcase install -d $(examplesdir)/$(RRADICAL_NAME)/showcase/impl install -p $(abstractions_src)/rradical/usecases/showcase/impl/*.* \ $(examplesdir)/$(RRADICAL_NAME)/showcase/impl install -d $(examplesdir)/$(RRADICAL_NAME)/showcase/songs install -p $(abstractions_src)/rradical/usecases/showcase/songs/*.* \ $(examplesdir)/$(RRADICAL_NAME)/showcase/songs #------------------------------------------------------------------------------- # rtc-lib RTC-LIB_NAME = rtc rtc-lib_install: install -d $(objectsdir)/$(RTC-LIB_NAME) install -p $(shell ls -1 $(abstractions_src)/footils/rtc-lib/rtc/*.pd | \ grep -v '\-help.pd\|RTC-Overview.pd'| sed 's|\(.*\)|"\1"|g') \ $(objectsdir)/$(RTC-LIB_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(RTC-LIB_NAME) \ --author "Karlheinz Essl and Frank Barknecht" \ --license "Pd license" \ --description "Realtime Composition Library for Max ported to Pd" install -d $(helpdir)/$(RTC-LIB_NAME) install -d $(helpdir)/$(RTC-LIB_NAME)/rtc-help install -p $(abstractions_src)/footils/rtc-lib/rtc/*-help.pd \ $(abstractions_src)/footils/rtc-lib/rtc/RTC-Overview.pd \ $(helpdir)/$(RTC-LIB_NAME) install -p $(abstractions_src)/footils/rtc-lib/rtc/rtc-help/*.pd \ $(helpdir)/$(RTC-LIB_NAME)/rtc-help #------------------------------------------------------------------------------- # PUREMEASUREMENT PUREMEASURE_NAME = puremeasurement puremeasurement_install: install -d $(objectsdir)/$(PUREMEASURE_NAME) install -p $(abstractions_src)/puremeasurement/applications/*.pd $(objectsdir)/$(PUREMEASURE_NAME) install -p $(abstractions_src)/puremeasurement/tools/*.pd $(objectsdir)/$(PUREMEASURE_NAME) install -p $(abstractions_src)/puremeasurement/testsig/*.wav $(objectsdir)/$(PUREMEASURE_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(PUREMEASURE_NAME) \ --author "Matthias Blau" \ --description "patches for acoustical measurements" \ --license "GNU GPL v2" \ --version "v28II06" install -d $(examplesdir)/$(PUREMEASURE_NAME) install -p $(abstractions_src)/puremeasurement/applications/*.pd \ $(examplesdir)/$(PUREMEASURE_NAME) install -d $(readmesdir) install -p $(abstractions_src)/puremeasurement/readme \ $(readmesdir)/$(PUREMEASURE_NAME).txt #------------------------------------------------------------------------------- # TIMESTRETCH TIMESTRETCH_NAME = timestretch timestretch_install: install -d $(objectsdir)/$(TIMESTRETCH_NAME) install -p $(abstractions_src)/timestretch/*.pd $(objectsdir)/$(TIMESTRETCH_NAME) $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(TIMESTRETCH_NAME) \ --author "" \ --description "" \ --license "" \ --version "" install -d $(helpdir)/$(TIMESTRETCH_NAME) install -p $(abstractions_src)/timestretch/*-help.pd \ $(helpdir)/$(TIMESTRETCH_NAME) # install -d $(manualsdir)/$(TIMESTRETCH_NAME) # install -p $(abstractions_src)/timestretch/doc/*.txt \ # $(manualsdir)/$(TIMESTRETCH_NAME) # install -d $(readmesdir) # install -p $(abstractions_src)/timestretch/README \ # $(readmesdir)/$(TIMESTRETCH_NAME).txt #------------------------------------------------------------------------------- # SSSAD SSSAD_NAME = sssad sssad_install: install -d $(objectsdir)/$(SSSAD_NAME) install -d $(objectsdir)/$(SSSAD_NAME)/_sssad install -p $(abstractions_src)/footils/sssad/*.pd $(objectsdir)/$(SSSAD_NAME) install -p $(abstractions_src)/footils/sssad/_sssad/*.pd $(objectsdir)/$(SSSAD_NAME)/_sssad $(scripts_src)/generate-libdir-metafile.sh $(objectsdir) $(SSSAD_NAME) \ --author "Frank Barkneht" \ --description "Stupid-super-simplistic State-saving for PD" \ --license "same as Pd's license" \ --version "" install -d $(helpdir)/$(SSSAD_NAME) install -p $(abstractions_src)/footils/sssad/*-help.pd \ $(helpdir)/$(SSSAD_NAME) install -p $(abstractions_src)/footils/sssad/_sssad/*-help.pd \ $(helpdir)/$(SSSAD_NAME) install -d $(examplesdir)/$(SSSAD_NAME) install -p $(abstractions_src)/footils/sssad/sssad-example.pd \ $(examplesdir)/$(SSSAD_NAME) install -d $(readmesdir) install -p $(abstractions_src)/footils/sssad/README.txt \ $(readmesdir)/$(SSSAD_NAME).txt #==============================================================================# # # DEVELOPER'S TARGETS # #==============================================================================# # make the symlinks necessary to simulate the installed environment devsymlinks: # make symlinks for help patches test -e $(abstractions_src)/../2.control.examples || \ ln -s $(pd_src)/doc/2.control.examples \ $(abstractions_src)/../2.control.examples test -e $(abstractions_src)/../3.audio.examples || \ ln -s $(pd_src)/doc/3.audio.examples \ $(abstractions_src)/../3.audio.examples # pd <= 0.38-4 has 4.fft.examples test -e $(abstractions_src)/../4.fft.examples || \ ln -s $(pd_src)/doc/4.fft.examples $(abstractions_src)/../4.fft.examples # pd > 0.38-4 has 4.data.structures test -e $(abstractions_src)/../4.data.structures || \ ln -s $(pd_src)/doc/4.data.structures \ $(abstractions_src)/../4.data.structures test -e $(abstractions_src)/../7.stuff || \ ln -s $(pd_src)/doc/7.stuff $(abstractions_src)/../7.stuff test -e $(abstractions_src)/../sound || \ ln -s $(pd_src)/doc/sound $(abstractions_src)/../sound # hmm, seems broken and unneeded #devsymlinks_keyboardkeys: # test -e abs || \ # ln -s abs $(abstractions_src)/keyboardkeys/keyboardkeys # test -e ../keyboardkeys || \ # ln -s ../keyboardkeys $(abstractions_src)/keyboardkeys/doc/keyboardkeys #==============================================================================# # # CLEAN TARGETS # #==============================================================================# # the destination-specific clean targets are in Makefile.buildlayout clean: install_clean distclean: clean cruft_clean test_locations: @echo "PD_VERSION: $(PD_VERSION)" @echo "PACKAGE_VERSION: $(PACKAGE_VERSION)" @echo "CWD $(CWD)" @echo "DESTDIR $(DESTDIR)" @echo "PREFIX $(prefix)" @echo "BINDIR $(bindir)" @echo "LIBDIR $(libdir)" @echo "OBJECTSDIR $(objectsdir)" @echo "PDDOCDIR $(pddocdir)" @echo "LIBPDDIR $(libpddir)" @echo "LIBPDBINDIR $(libpdbindir)" @echo "HELPDIR $(helpdir)" @echo "MANUALSDIR $(manualsdir)" @echo "EXAMPLESDIR $(examplesdir)"