From 518cfd25c5e6d58e6eb0bfc25c59c3488723d6d5 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 18 Nov 2005 07:08:35 +0000 Subject: it builds everything that the previous one did, plus the doc/makefile was folded into this one; next, make it actually do the C compiling instead of having the separate makefiles for each platform svn path=/trunk/; revision=3961 --- externals/Makefile | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 externals/Makefile (limited to 'externals/Makefile') diff --git a/externals/Makefile b/externals/Makefile new file mode 100644 index 00000000..5da699bf --- /dev/null +++ b/externals/Makefile @@ -0,0 +1,219 @@ +#==============================================================================# +# +# Centralized build system for "externals". +# +# see README for instructions +# +#==============================================================================# + +# TODO: maybe this should be moved to the root like all the others + +CWD := $(shell pwd) + +# these are setup to be overridden by the packages/Makefile +SRC_ROOT_DIR = $(CWD)/.. +INSTALL_PREFIX = $(CWD)/build +BUILDLAYOUT_DIR = $(CWD) + +# default target +all: objects + +.SUFFIXES: .$(EXTENSION) + + +include $(BUILDLAYOUT_DIR)/Makefile.buildlayout + + +# these are sent to all of the various Makefiles so that they all copy their +# output to the same directory tree +DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \ + SRC_ROOT_DIR=$(SRC_ROOT_DIR) \ + INSTALL_PREFIX=$(INSTALL_PREFIX) + +#==============================================================================# +# +# COMPILE TARGETS +# +#==============================================================================# + +objects: objects_$(OS_NAME) + @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: + +objects_linux: + +objects_win: + +objects_unknown: +# this target is for "everything else" + +#==============================================================================# +# +# 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) + + +docs_install: $(HELP_DEST) +#------------------------------------------------------------------------------# +# all standard objs' help files +# it had to be broken up because the list is soo long + install -p \ + $(EXTERNALS_SRC)/OSCx/doc/*.pd \ + $(EXTERNALS_SRC)/aenv~/*.pd \ + $(EXTERNALS_SRC)/arraysize/*.pd \ + $(EXTERNALS_SRC)/beatpipe/*.pd \ + $(EXTERNALS_SRC)/control/*/*.pd \ + $(EXTERNALS_SRC)/bbogart/chaos/tools/*.pd \ + $(EXTERNALS_SRC)/bbogart/*/*.pd \ + $(EXTERNALS_SRC)/creb/doc/*.pd \ + $(HELP_DEST) + install -p \ + $(EXTERNALS_SRC)/creb/doc/examples/*.pd \ + $(EXTERNALS_SRC)/cxc/reference/*.pd \ + $(EXTERNALS_SRC)/dfx/*/*.pd \ + $(EXTERNALS_SRC)/ext13/doc/*.pd \ + $(EXTERNALS_SRC)/ggee/*/*-help.pd \ + $(EXTERNALS_SRC)/gem2pdp/*.pd \ + $(EXTERNALS_SRC)/ff/*.pd \ + $(EXTERNALS_SRC)/freeverb~/*.pd \ + $(EXTERNALS_SRC)/hcs/*-help.pd \ + $(HELP_DEST) + install -p \ + $(EXTERNALS_SRC)/hcs/*/doc/*.pd \ + $(EXTERNALS_SRC)/hcs/hid/examples/*.pd \ + $(EXTERNALS_SRC)/hcs/pan/*-help.pd \ + $(EXTERNALS_SRC)/iem/*/*/*-help.pd \ + $(EXTERNALS_SRC)/markex/*.pd \ + $(EXTERNALS_SRC)/motex/*.pd \ + $(EXTERNALS_SRC)/nusmuk/line3/*.pd\ + $(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 \ + $(EXTERNALS_SRC)/susloop~/*.pd \ + $(EXTERNALS_SRC)/svf~/*.pd \ + $(EXTERNALS_SRC)/vbap/*.pd \ + $(EXTERNALS_SRC)/vst/*.pd \ + $(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) +#------------------------------------------------------------------------------# +# maxlib [split] conflicts with cyclone so filter it + install -p $(shell ls -1 $(EXTERNALS_SRC)/maxlib/help/*.* | \ + 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) + + +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 +# 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 | \ + grep -v 'help') $(OBJECTS_DEST)/$(IEMABS_NAME) + install -d $(HELP_DEST)/$(IEMABS_NAME) + install -p $(EXTERNALS_SRC)/iemlib/iemabs/*help*.pd \ + $(HELP_DEST)/$(IEMABS_NAME) + install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.mp3 $(HELP_DEST)/$(IEMABS_NAME) + install -p $(EXTERNALS_SRC)/iemlib/iemabs/*.wav $(HELP_DEST)/$(IEMABS_NAME) + 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) docs_install applications_install objects_install +install: manuals_install + +#==============================================================================# +# +# DEVELOPER'S TARGETS +# +#==============================================================================# + +# make the symlinks necessary to simulate the installed environment +devsymlinks: + + +#==============================================================================# +# +# CLEAN TARGETS +# +#==============================================================================# + +applications_clean: + rm $(APPLICATIONS_DEST)/*/*.* + rmdir $(APPLICATIONS_DEST)/* + rmdir $(APPLICATIONS_DEST) + +docs_clean: + -rm $(HELP_DEST)/*.* $(HELP_DEST)/*/*.* + rmdir $(HELP_DEST)/* + +manuals_clean: + rm $(MANUALS_DEST)/*/*.* + rmdir $(MANUALS_DEST)/* + rmdir $(MANUALS_DEST) + +objects_clean: + rm $(OBJECTS_DEST)/*.pd + rm $(OBJECTS_DEST)/*/*.pd + rm $(OBJECTS_DEST)/*.$(EXTENSION) +# for upcoming lib directory structure + -rm $(OBJECTS_DEST)/*/*.$(EXTENSION) + rmdir $(OBJECTS_DEST)/* + +clean: applications_clean docs_clean manuals_clean objects_clean + rmdir $(DOCS_DEST)/* + rmdir $(DOCS_DEST) -- cgit v1.2.1