diff options
-rw-r--r-- | abstractions/Makefile | 32 | ||||
-rwxr-xr-x | abstractions/Makefile.buildlayout | 7 | ||||
-rw-r--r-- | abstractions/TODO | 2 | ||||
-rw-r--r-- | externals/Makefile | 297 | ||||
-rw-r--r-- | externals/Makefile.buildlayout | 7 | ||||
-rw-r--r-- | externals/build/README | 16 | ||||
-rw-r--r-- | externals/build/TODO | 3 | ||||
-rw-r--r-- | externals/build/darwin/makefile | 126 |
8 files changed, 328 insertions, 162 deletions
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 <hans@at.or.at>
+# see for instructions: http://puredata.org/docs/developer/build
+# <hans@at.or.at>
#
#==============================================================================#
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. diff --git a/externals/Makefile b/externals/Makefile index 56797d8e..3a94d519 100644 --- a/externals/Makefile +++ b/externals/Makefile @@ -16,7 +16,7 @@ INSTALL_PREFIX = $(CWD)/build BUILDLAYOUT_DIR = $(CWD)
# default target
-all: objects
+default: all
.SUFFIXES: .$(EXTENSION)
@@ -36,40 +36,42 @@ DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \ #
#==============================================================================#
-objects: objects_$(OS_NAME)
+#------------------------------------------------------------------------------#
+# BUILD
+all: pre_all_$(OS_NAME)
+all: creb iemabs iemlib iemmatrix pdp pmpd vbap zexy
@echo "Compiling objects for $(OS_NAME) aka $(UNAME)"
# try it this way so that it'll recognize files that have already been built
cd $(EXTERNALS_SRC)/build/$(OS_NAME) && make -k
-# these targets are for platform-specific needs
-objects_darwin:
+# these targets are for platform-specific needs that run before objects:
+pre_all_darwin:
-objects_linux:
+pre_all_linux:
-objects_win:
+pre_all_win:
-objects_unknown:
+pre_all_unknown:
# this target is for "everything else"
+
+#------------------------------------------------------------------------------#
+# INSTALL
+install: $(OBJECTS_DEST) help_install objects_install unfiltered_install
+install: creb_install iemabs_install iemabs_install iemmatrix_install
+install: pdp_install pmpd_install vbap_install zexy_install
+ @echo " "
+ @echo "externals install succeeded!"
+
+objects_install:
+ install -p $(EXTERNALS_SRC)/build/$(OS_NAME)/*.$(EXTENSION) $(OBJECTS_DEST)
+
#==============================================================================#
#
# INSTALL TARGETS
#
#==============================================================================#
-IEMABS_NAME = iemabs
-IEMLIB_NAME = iemlib
-PMPD_NAME = pmpd
-applications_install: $(APPLICATIONS_DEST)
-# iemlib
- install -d $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
- install -p $(EXTERNALS_SRC)/iemlib/examples/*.* \
- $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
-# PMDP examples
- install -d $(APPLICATIONS_DEST)/$(PMPD_NAME)
- install -p $(EXTERNALS_SRC)/pmpd/exemples/*.pd \
- $(APPLICATIONS_DEST)/$(PMPD_NAME)
-
help_install: $(HELP_DEST)
#------------------------------------------------------------------------------#
@@ -108,7 +110,6 @@ help_install: $(HELP_DEST) install -p \
$(EXTERNALS_SRC)/pdogg/*/*.pd \
$(EXTERNALS_SRC)/plugin~/*.pd \
- $(EXTERNALS_SRC)/pmpd/help/*.pd\
$(EXTERNALS_SRC)/rhythm_estimator/*.p? \
$(EXTERNALS_SRC)/signal/*/*.pd \
$(EXTERNALS_SRC)/sprinkler/sprinkler-help.pd \
@@ -119,20 +120,6 @@ help_install: $(HELP_DEST) $(EXTERNALS_SRC)/zhzxh~/*.pd \
$(HELP_DEST)
#------------------------------------------------------------------------------#
-# IEMlib uses its own dir and since its not maintained in CVS
-# its best not to change the objects
- install -d $(HELP_DEST)/iemhelp
- install -p $(EXTERNALS_SRC)/iemlib/iemhelp/*.* $(HELP_DEST)/iemhelp
-#------------------------------------------------------------------------------#
-# zexy uses its own dir
- install -d $(HELP_DEST)/zexy
- install -p $(EXTERNALS_SRC)/zexy/zexy.pd $(HELP_DEST)
- install -p $(EXTERNALS_SRC)/zexy/examples/*.* $(HELP_DEST)/zexy
-#------------------------------------------------------------------------------#
-# iemmatrix uses its own dir
- install -d $(HELP_DEST)/iemmatrix
- install -p $(EXTERNALS_SRC)/iem/iemmatrix/doc/*.pd $(HELP_DEST)/iemmatrix
-#------------------------------------------------------------------------------#
# mjlib [prob] conflicts with cyclone's [prob] so filter it
install -p $(shell ls -1 $(EXTERNALS_SRC)/mjlib/doc/*.* | \
grep -v 'prob') $(HELP_DEST)
@@ -142,21 +129,51 @@ help_install: $(HELP_DEST) grep -v 'split') $(HELP_DEST)
-manuals_install: $(MANUALS_DEST)
-# pmpd
- install -d $(MANUALS_DEST)/$(PMPD_NAME)
- install -p $(EXTERNALS_SRC)/pmpd/doc/pmpd.pdf/pmpd.pdf \
- $(MANUALS_DEST)/$(PMPD_NAME)
+
+#==============================================================================#
+#
+# PROJECT TARGETS
+#
+#==============================================================================#
-objects_install: objects
- install -p $(EXTERNALS_SRC)/build/$(OS_NAME)/*.$(EXTENSION) $(OBJECTS_DEST)
#------------------------------------------------------------------------------#
-# abstractions (i.e. objects written in Pd)
-# iemmatrix
- install -p $(shell ls -1 $(EXTERNALS_SRC)/iem/iemmatrix/abs/*.* | \
- grep -v '\-help.pd') $(OBJECTS_DEST)
-# IEMlib
+# TEMPLATE
+TEMPLATE_NAME=template
+template:
+
+
+template_install: template
+ install -d $(OBJECTS_DEST)/$(TEMPLATE_NAME)
+ install -d $(HELP_DEST)/$(TEMPLATE_NAME)
+ install -d $(MANUALS_DEST)/$(TEMPLATE_NAME)
+ install -d $(APPLICATIONS_DEST)/$(TEMPLATE_NAME)
+
+
+#------------------------------------------------------------------------------#
+# CREB
+CREB_NAME=creb
+creb:
+
+
+creb_install: creb
+ install -d $(OBJECTS_DEST)/$(CREB_NAME)
+ install -p $(EXTERNALS_SRC)/creb/abs/*.pd $(OBJECTS_DEST)/$(CREB_NAME)
+ install -d $(HELP_DEST)/$(CREB_NAME)
+ install -p -m0644 $(EXTERNALS_SRC)/creb/doc/examples/*.* \
+ $(HELP_DEST)/$(CREB_NAME)
+# install -d $(MANUALS_DEST)/$(CREB_NAME)
+# install -d $(APPLICATIONS_DEST)/$(CREB_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# IEMABS
+IEMABS_NAME=iemabs
+iemabs:
+
+
+iemabs_install: iemabs
# iemabs still has the help patches in the old help-*.pd style
install -d $(OBJECTS_DEST)/$(IEMABS_NAME)
install -p $(shell ls -1 $(EXTERNALS_SRC)/iemlib/iemabs/*.pd | \
@@ -169,14 +186,178 @@ objects_install: objects install -d $(MANUALS_DEST)/$(IEMABS_NAME)
install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.txt \
$(MANUALS_DEST)/$(IEMABS_NAME)
-# vbap
- install -p $(EXTERNALS_SRC)/vbap/graph-to-aziele.pd $(OBJECTS_DEST)
-install: $(OBJECTS_DEST) help_install applications_install objects_install
-install: manuals_install
- @echo "externals install succeeded!"
+#------------------------------------------------------------------------------#
+# IEMLIB
+IEMLIB_NAME=iemlib
+iemlib:
+
+
+iemlib_install: iemlib
+# install -d $(OBJECTS_DEST)/$(IEMLIB_NAME)
+# install -d $(HELP_DEST)/$(IEMLIB_NAME)
+ install -d $(HELP_DEST)/iemhelp
+ install -p $(EXTERNALS_SRC)/iemlib/iemhelp/*.* $(HELP_DEST)/iemhelp
+# install -d $(MANUALS_DEST)/$(IEMLIB_NAME)
+ install -d $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
+ install -p $(EXTERNALS_SRC)/iemlib/examples/*.* \
+ $(APPLICATIONS_DEST)/$(IEMLIB_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# IEMMATRIX
+IEMMATRIX_NAME=iemmatrix
+iemmatrix:
+
+
+iemmatrix_install: iemmatrix
+ install -d $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/iem/iemmatrix/abs/*.* | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)/$(IEMMATRIX_NAME)
+ install -d $(HELP_DEST)/$(IEMMATRIX_NAME)
+ install -p $(EXTERNALS_SRC)/iem/iemmatrix/doc/*.pd \
+ $(HELP_DEST)/$(IEMMATRIX_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# PDP
+PDP_NAME=pdp
+pdp:
+# cd $(EXTERNALS_SRC)/pdp && ./configure && $(MAKE)
+#TODO: compile pidip here
+#TODO: compile gem2pdp here
+
+pdp_install: pdp
+# install -d $(OBJECTS_DEST)/$(PDP_NAME)
+# install -p $(EXTERNALS_SRC)/pdp/*.pd_darwin $(OBJECTS_DEST)
+# install -p $(EXTERNALS_SRC)/pidip/*.pd_darwin $(OBJECTS_DEST)
+# install -p $(EXTERNALS_SRC)/gem2pdp/*.pd_darwin $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/pdp/abstractions/*.pd $(OBJECTS_DEST)
+# install -d $(HELP_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/objects/*.* $(HELP_DEST)
+ install -d $(MANUALS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/reference.txt $(MANUALS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/introduction/*.* \
+ $(MANUALS_DEST)/$(PDP_NAME)
+ install -d $(APPLICATIONS_DEST)/$(PDP_NAME)
+ install -p $(EXTERNALS_SRC)/pdp/doc/examples/*.* \
+ $(APPLICATIONS_DEST)/$(PDP_NAME)
+
+
+#------------------------------------------------------------------------------#
+# PMPD
+PMPD_NAME=pmpd
+pmpd:
+
+
+pmpd_install: pmpd
+ install -d $(OBJECTS_DEST)/$(PMPD_NAME)
+ install -d $(HELP_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/help/*.pd \
+ $(HELP_DEST)/$(PMPD_NAME)
+ install -d $(MANUALS_DEST)/$(PMPD_NAME)
+ install -d $(MANUALS_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/doc/pmpd.pdf/pmpd.pdf \
+ $(MANUALS_DEST)/$(PMPD_NAME)
+ install -d $(APPLICATIONS_DEST)/$(PMPD_NAME)
+ install -p $(EXTERNALS_SRC)/pmpd/exemples/*.pd \
+ $(APPLICATIONS_DEST)/$(PMPD_NAME)
+
+
+#------------------------------------------------------------------------------#
+# VBAP
+VBAP_NAME=vbap
+vbap:
+
+
+vbap_install: vbap
+ install -d $(OBJECTS_DEST)/$(VBAP_NAME)
+# install -d $(HELP_DEST)/$(VBAP_NAME)
+# install -d $(MANUALS_DEST)/$(VBAP_NAME)
+# install -d $(APPLICATIONS_DEST)/$(VBAP_NAME)
+ install -p $(EXTERNALS_SRC)/vbap/graph-to-aziele.pd \
+ $(OBJECTS_DEST)/$(VBAP_NAME)
+
+
+
+#------------------------------------------------------------------------------#
+# Zexy
+ZEXY_NAME = zexy
+zexy:
+# zexy's new build system doesn't work with CVS layout, and most of zexy is
+# included in the extrnals build system now anyway. But the abstractions
+# should still be included
+# cd $(EXTERNALS_SRC)/zexy/src && autoconf && ./configure && $(MAKE)
+
+
+zexy_install: zexy
+ install -d $(OBJECTS_DEST)/$(ZEXY_NAME)
+# install -p $(EXTERNALS_SRC)/zexy/src/*.pd_darwin $(OBJECTS_DEST)/$(ZEXY_NAME)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/zexy/abs/*.pd | \
+ grep -v '-help.pd' | sed 's/\([&<>|~]\)/\\\1/g') \
+ $(OBJECTS_DEST)/$(ZEXY_NAME)
+ install -d $(HELP_DEST)/$(ZEXY_NAME)
+ install -p $(EXTERNALS_SRC)/zexy/abs/*-help.pd $(HELP_DEST)/$(ZEXY_NAME)
+ install -p $(EXTERNALS_SRC)/zexy/zexy.pd $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/zexy/examples/*.* $(HELP_DEST)/$(ZEXY_NAME)
+
+
+
+#==============================================================================#
+#
+# UNFILTERED PROJECT TARGETS
+#
+#==============================================================================#
+# this is not yet organized into libdirs, but just leftover <hans@at.or.at>
+
+unfiltered_install:
+#----------------------------------------------------------------------------
+# hcs
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/*.pd | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)
+# hid
+ cd $(EXTERNALS_SRC)/hcs/hid && $(MAKE)
+ install -p $(EXTERNALS_SRC)/hcs/hid/hid.pd_darwin $(OBJECTS_DEST)
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/hid/*.pd | \
+ grep -v '\-help.pd'| grep -v '\-list.pd') $(OBJECTS_DEST)
+# general
+ install -p $(EXTERNALS_SRC)/hcs/general/*.pd $(OBJECTS_DEST)
+# pan
+ install -p $(shell ls -1 $(EXTERNALS_SRC)/hcs/pan/*.pd | \
+ grep -v '\-help.pd') $(OBJECTS_DEST)
+#----------------------------------------------------------------------------
+# miXed
+ cd $(EXTERNALS_SRC)/miXed/toxy && $(MAKE)
+ cd $(EXTERNALS_SRC)/miXed/cyclone && $(MAKE)
+ cd $(EXTERNALS_SRC)/miXed/pddp && $(MAKE)
+ install -d $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/miXed/bin/*.pd_darwin $(OBJECTS_DEST)
+ install -d $(HELP_DEST)/cyclone
+ install -p $(EXTERNALS_SRC)/miXed/test/*/*.* \
+ $(HELP_DEST)/cyclone
+ install -p $(EXTERNALS_SRC)/miXed/doc/*/*/*.* \
+ $(HELP_DEST)
+# install cyclist with pd
+ install -d $(INSTALL_PREFIX)/bin
+ install -p $(EXTERNALS_SRC)/miXed/bin/cyclist $(INSTALL_PREFIX)/bin
+#----------------------------------------------------------------------------
+# OSC
+ cd $(EXTERNALS_SRC)/OSCx && ./configure && $(MAKE)
+ install -p $(EXTERNALS_SRC)/OSCx/doc/*.* $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/OSCx/src/*.pd_darwin $(OBJECTS_DEST)
+#----------------------------------------------------------------------------
+# unauthorized
+ cd $(EXTERNALS_SRC)/unauthorized && $(MAKE)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.pd_darwin $(OBJECTS_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.pd $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.txt $(HELP_DEST)
+ install -p $(EXTERNALS_SRC)/unauthorized/*/*.pls $(HELP_DEST)
+ cp -Rfp $(EXTERNALS_SRC)/unauthorized/blinkenlights/blm $(HELP_DEST)
+
#==============================================================================#
#
@@ -188,5 +369,13 @@ install: manuals_install devsymlinks:
-# FYI: clean targets are in Makefile.buildlayout
-clean: install_clean cruft_clean
+#==============================================================================#
+#
+# CLEAN TARGETS
+#
+#==============================================================================#
+
+# the destination-specific clean targets are in Makefile.buildlayout
+clean: install_clean
+
+distclean: clean cruft_clean
diff --git a/externals/Makefile.buildlayout b/externals/Makefile.buildlayout index a5a85e6d..d5b9e9f3 100644 --- a/externals/Makefile.buildlayout +++ b/externals/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/externals/build/README b/externals/build/README index a04004e8..9babac70 100644 --- a/externals/build/README +++ b/externals/build/README @@ -1,3 +1,16 @@ + + +There are lots of docs here: http://puredata.org/docs/developer + + +Pd-extended build system +======================== + +This stuff as all be incorporated into the unified, cross-platform Pd-extended +build system. These makefiles will probably stay around for a while since they +are widely used. + + PD externals build system ========================= @@ -15,10 +28,11 @@ To build with SCons: scons scons install + Build System Internals ====================== -The build system is actually on top of the different externals packages +The build system is actually on top of the different externals packages that are in the CVS. Every external (the source code) is linked into the "src" directory. diff --git a/externals/build/TODO b/externals/build/TODO index e80174c8..da3aa827 100644 --- a/externals/build/TODO +++ b/externals/build/TODO @@ -1,5 +1,6 @@ -- fold externals/build/doc/makefile into externals/build/Makefile +- simplify Makefile, making just "all" and "install" with subsections for each + subdir. - get externals/build/src/prepend.c to compile in Pd mode, which means it will have a right inlet when created without an argument diff --git a/externals/build/darwin/makefile b/externals/build/darwin/makefile index 4fcc983c..bb32bfba 100644 --- a/externals/build/darwin/makefile +++ b/externals/build/darwin/makefile @@ -1,14 +1,23 @@ -prefix=/tmp -#prefix=$(DESTDIR)/usr/local/lib/pd -EXTERNALS = $(shell ls -1 ../src | grep -e '.*\.c$$') +CWD := $(shell pwd) -all: $(EXTERNALS:.c=.pd_darwin) +# these are setup to be overridden by the packages/Makefile +SRC_ROOT_DIR = $(CWD)/../../.. +INSTALL_PREFIX = build +BUILDLAYOUT_DIR = $(CWD)/../.. + +all: externals .SUFFIXES: .pd_darwin -#PDEXECUTABLE = /usr/local/bin/pd -PDEXECUTABLE = ../../../pd/bin/pd +include $(BUILDLAYOUT_DIR)/Makefile.buildlayout + +BUILD_SRC = $(EXTERNALS_SRC)/build/src +BUILD_DARWIN_SRC = $(EXTERNALS_SRC)/build/darwin + +EXTERNALS = $(shell ls -1 $(BUILD_SRC) | grep -e '.*\.c$$') + +PDEXECUTABLE = $(PD_SRC)/bin/pd ## These generally need gcc-3.3 # Generic PowerPC @@ -24,93 +33,28 @@ OPTIM_FLAGS = -mpowerpc-gpopt -mcpu=750 CFLAGS = -DPD -DUNIX -DMACOSX -Dunix $(OPTIM_FLAGS) \ -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -Wno-shadow -INCLUDES = -I. -I.. -I../../../pd/src -I../include -I/sw/include +INCLUDES = -I$(PD_SRC)/src -I/sw/include LDFLAGS = -bundle -bundle_loader $(PDEXECUTABLE) -L/sw/lib -%.pd_darwin: ../src/%.c - $(CC) $(CFLAGS) $(INCLUDES) -o "$*.o" -c "../src/$*.c" - $(CC) $(LDFLAGS) -o "$*.pd_darwin" "$*.o" -lc -lm \ - `test -f $*.libs && cat $*.libs` \ - `test -f ../src/$*.libs && cat ../src/$*.libs` - chmod a-x "$*.pd_darwin" - rm -f "$*.o" - -clean: - -rm *.pd_darwin *~ - -rm -rf root *.pkg - -install-doc: - test -d $(prefix)/doc/5.reference || mkdir -p $(prefix)/doc/5.reference - cd ../doc && make all - install -m444 ../doc/*.* $(prefix)/doc/5.reference - -install-abstractions: - test -d $(prefix)/extra || mkdir -p $(prefix)/extra - install -m444 \ - ../../vbap/graph-to-aziele.pd \ - $(prefix)/extra - -install: install-doc - test -d $(prefix)/extra || mkdir -p $(prefix)/extra - install -m644 *.pd_darwin $(prefix)/extra +externals: $(EXTERNALS:.c=.pd_darwin) +%.pd_darwin: $(BUILD_SRC)/%.c + $(CC) $(CFLAGS) $(INCLUDES) -o "$(BUILD_DARWIN_SRC)/$*.o" \ + -c "$(BUILD_SRC)/$*.c" + $(CC) $(LDFLAGS) -o "$(BUILD_DARWIN_SRC)/$*.pd_darwin" \ + "$(BUILD_DARWIN_SRC)/$*.o" -lc -lm \ + `test -f $(BUILD_DARWIN_SRC)/$*.libs && \ + cat $(BUILD_DARWIN_SRC)/$*.libs` \ + `test -f $(BUILD_SRC)/$*.libs && \ + cat $(BUILD_SRC)/$*.libs` + chmod a-x "$(BUILD_DARWIN_SRC)/$*.pd_darwin" + rm -f "$(BUILD_DARWIN_SRC)/$*.o" -EXTERNALS_VERSION := $(shell date +20%y.%m.%d) -PACKAGE_PREFIX = pd-externals -PACKAGE_NAME = $(PACKAGE_PREFIX)-$(EXTERNALS_VERSION) +#------------------------------------------------------------------------------ +# CLEAN TARGETS +#------------------------------------------------------------------------------ -darwin_pkg_license: - # generate HTML version of License - echo "<HTML><BODY><FONT SIZE=\"-1\">" > License.html - cat ../../creb/COPYING | sed -e 's/^$$/\<P\>/g' >> License.html - echo "</FONT></BODY></HTML>" >> License.html - -darwin_pkg_welcome: -# generate Welcome.html from ../README.txt - -darwin_pkg_clean: - -sudo rm -Rf installroot/ $(PACKAGE_PREFIX)*.pkg/ - -rm -f $(PACKAGE_PREFIX)-*.info 1 License.html Welcome.???* - -# install into MSP's default: /usr/local/lib - -darwin_pkg: DESTDIR = installroot -darwin_pkg: prefix = $(DESTDIR)/pd -darwin_pkg: all install darwin_pkg_license darwin_pkg_welcome -# set up installroot dir -# test -d installroot/pd/doc/5.reference/ || mkdir -p installroot/pd/doc/5.reference/ -# test -d installroot/pd/extra || mkdir -p installroot/pd/extra -# install -m644 --group=staff *.pd_darwin installroot/pd/extra - cp -f pd-externals.info $(PACKAGE_NAME).info -# delete cruft - -find installroot -name .DS_Store -delete - -sudo rm -Rf installroot/*/*/CVS installroot/*/*/*/CVS installroot/*/*/*/*/CVS - -rm -f 1 -# set proper permissions - sudo chown -R root:staff installroot - package installroot $(PACKAGE_NAME).info -d . -ignoreDSStore -# install pkg docs - install -m 644 License.html $(PACKAGE_NAME).pkg/Contents/Resources - sudo chown -R root:staff $(PACKAGE_NAME).pkg/Contents/Resources - - -# install into MacOS X style path: /Library/Pd - -darwin_altpkg: all darwin_pkg_clean darwin_pkg_license darwin_pkg_welcome - test -d installroot/Help || mkdir -p installroot/Help - cp -r ../doc/* installroot/Help - test -d installroot/Externals || mkdir -p installroot/Externals - install -m644 --group=staff *.pd_darwin installroot/Externals - sed -e 's/\/usr\/local\/lib/\/Library\/Pd/' pd-externals.info \ - | sed -e 's/MSP standard paths/MacOS X-style Paths/' \ - > $(PACKAGE_NAME)-alt.info - # delete cruft - -sudo find installroot -name .DS_Store -delete - -sudo rm -Rf installroot/*/*/CVS installroot/*/*/*/CVS installroot/*/*/*/*/CVS - -rm -f 1 - # set proper permissions - sudo chown -R root:staff installroot - package installroot $(PACKAGE_NAME)-alt.info -d . -ignoreDSStore - # install pkg docs - install -m 644 License.html $(PACKAGE_NAME)-alt.pkg/Contents/Resources - sudo chown -R root:staff $(PACKAGE_NAME)-alt.pkg/Contents/Resources +clean: + -rm -rf root *.pkg + -rm $(BUILD_DARWIN_SRC)/*~ + rm $(BUILD_DARWIN_SRC)/*.pd_darwin |