From 196343bb45dad2fd80851888184b8140c3e11adf Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 21 Nov 2005 04:49:15 +0000 Subject: Lots of changes, got the first complete(-ish) build with the new extended build system. I left as much of the old functionality in place as possible, definitely were it was being used. But there are some changes that break backwards compatibility, thought they should be noticed by few, and be easy to fix going forward. Some highlights: - centralized patch system (packages/patches with targets patch_pd and unpatch_pd) - easily redirected builds, using INSTALL_PREFIX and all of the *_DEST variables. This makes building packages like Pd.app, .deb, .rpm, etc. much easier. - libdir format: basically a libdir is a directory that has both the objects and the help files together in one folder. It can be added using -lib or the StartUp preferences, or you can access them via geiger namespaces, i.e. [mylibrary/myobject]. - special characters allow in setup function/file names for objects. This makes objects like [||~] possible without having to be in a library. Now they can be either .pd files or individual .pd_darwin files (thanks IOhannes for the patch). svn path=/trunk/; revision=3994 --- abstractions/Makefile | 32 +++++++++++++++++++------------- abstractions/Makefile.buildlayout | 7 ++++++- abstractions/TODO | 2 ++ 3 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 abstractions/TODO (limited to 'abstractions') diff --git a/abstractions/Makefile b/abstractions/Makefile index a1a8769d..b38d74fd 100644 --- a/abstractions/Makefile +++ b/abstractions/Makefile @@ -2,20 +2,22 @@ # # Centralized build system for "abstractions". # -# see README for instructions +# see for instructions: http://puredata.org/docs/developer/build +# # #==============================================================================# CWD := $(shell pwd) -# these are setup to be overridden by the packages/Makefile +# these are designed to be overridden by the packages/Makefile SRC_ROOT_DIR = $(CWD)/.. INSTALL_PREFIX = build BUILDLAYOUT_DIR = $(CWD) # default target install: objects applications - echo "abstractions install succeeded!" + @echo " " + @echo "abstractions install succeeded!" include $(BUILDLAYOUT_DIR)/Makefile.buildlayout @@ -67,6 +69,9 @@ objects_keyboardkeys: install -d $(OBJECTS_DEST)/$(KEYBOARDKEYS_NAME) install -p $(ABSTRACTIONS_SRC)/$(KEYBOARDKEYS_NAME)/abs/*.pd \ $(OBJECTS_DEST)/$(KEYBOARDKEYS_NAME) + $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(MEMENTO_NAME) \ + --author "Andrey Savitsky" \ + --description "objects for using keyboard keys for scrolling and selecting" install -d $(HELP_DEST)/$(KEYBOARDKEYS_NAME) install -p $(ABSTRACTIONS_SRC)/$(KEYBOARDKEYS_NAME)/doc/*-help.pd \ $(HELP_DEST)/$(KEYBOARDKEYS_NAME) @@ -84,6 +89,8 @@ 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) + $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(LA-KITCHEN_NAME) \ + --description "a collection of objects working with sensors" install -d $(HELP_DEST)/$(LA-KITCHEN_NAME) install -p $(ABSTRACTIONS_SRC)/La-kitchen/*-help.pd \ $(HELP_DEST)/$(LA-KITCHEN_NAME) @@ -99,6 +106,10 @@ 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) + $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(MEMENTO_NAME) \ + --author "Frank Barknecht" \ + --license "GNU GPL" \ + --description "a collection of objects for managing state saving" install -d $(HELP_DEST)/$(MEMENTO_NAME) install -p $(ABSTRACTIONS_SRC)/rradical/memento/*-help.pd \ $(HELP_DEST)/$(MEMENTO_NAME) @@ -154,6 +165,9 @@ objects_nusmuk: install -d $(OBJECTS_DEST)/$(NUSMUK_NAME) install -p $(shell ls -1 $(ABSTRACTIONS_SRC)/nusmuk/*.pd | \ grep -v '\-help.pd') $(OBJECTS_DEST)/$(NUSMUK_NAME) + $(SCRIPTS_SRC)/generate-libdir-metafile.sh $(OBJECTS_DEST) $(NUSMUK_NAME) \ + --author "Cyrille Henry" \ + --description "a collection of objects for physical modelling" install -d $(HELP_DEST)/$(NUSMUK_NAME) install -p $(ABSTRACTIONS_SRC)/nusmuk/*-help.pd \ $(HELP_DEST)/$(NUSMUK_NAME) @@ -210,14 +224,6 @@ devsymlinks_keyboardkeys: #==============================================================================# # the destination-specific clean targets are in Makefile.buildlayout -clean: install_clean cruft_clean +clean: install_clean -#==============================================================================# -# -# 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 +distclean: clean cruft_clean diff --git a/abstractions/Makefile.buildlayout b/abstractions/Makefile.buildlayout index a5a85e6d..d5b9e9f3 100755 --- a/abstractions/Makefile.buildlayout +++ b/abstractions/Makefile.buildlayout @@ -70,13 +70,18 @@ EXTERNALS_SRC = $(SRC_ROOT_DIR)/externals FLEXT_SRC = $(SRC_ROOT_DIR)/externals/grill/flext GEM_SRC = $(SRC_ROOT_DIR)/Gem GEMLIBS_SRC = $(SRC_ROOT_DIR)/GemLibs +PACKAGES_SRC = $(SRC_ROOT_DIR)/packages PD_SRC = $(SRC_ROOT_DIR)/pd SCRIPTS_SRC = $(SRC_ROOT_DIR)/scripts # destinations APPLICATIONS_DEST = $(DOCS_DEST)/examples +BIN_DEST = $(INSTALL_PREFIX)/bin DOCS_DEST = $(INSTALL_PREFIX)/doc +INCLUDE_DEST = $(INSTALL_PREFIX)/include +LIB_DEST = $(INSTALL_PREFIX)/lib +MAN_DEST = $(INSTALL_PREFIX)/man OBJECTS_DEST = $(INSTALL_PREFIX)/extra HELP_DEST = $(DOCS_DEST)/5.reference MANUALS_DEST = $(DOCS_DEST)/manuals @@ -146,7 +151,7 @@ manuals_clean: objects_clean: -rm $(OBJECTS_DEST)/*/*/*.pd -rm $(OBJECTS_DEST)/*/*.pd - -rm $(OBJECTS_DEST)/*.pd + -rm $(OBJECTS_DEST)/*.pd -rm $(OBJECTS_DEST)/*/*/*.$(EXTENSION) -rm $(OBJECTS_DEST)/*/*.$(EXTENSION) -rm $(OBJECTS_DEST)/*.$(EXTENSION) diff --git a/abstractions/TODO b/abstractions/TODO new file mode 100644 index 00000000..d78220d4 --- /dev/null +++ b/abstractions/TODO @@ -0,0 +1,2 @@ + +- simplify Makefile, making just "install" with subsections for each subdir. -- cgit v1.2.1