diff options
Diffstat (limited to 'externals/Makefile')
-rw-r--r-- | externals/Makefile | 3349 |
1 files changed, 3315 insertions, 34 deletions
diff --git a/externals/Makefile b/externals/Makefile index 3f23b234..26248222 100644 --- a/externals/Makefile +++ b/externals/Makefile @@ -1,51 +1,3332 @@ -PD_DIR = ../../pd -GEM_DIR = ../gem -GEM_OPENCV_VERSION = 0.1 +#==============================================================================# +# +# Centralized build system for "externals". +# +# see README for instructions <hans@at.or.at> +# http://puredata.org/docs/developer/build +# +#==============================================================================# -# build flags +CWD := $(shell pwd) -INCLUDES = -I$(PD_DIR)/src -I. -I$(GEM_DIR)/src -I$(PD_DIR)/src -CPPFLAGS = -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math \ - -Wall -W -Wno-unused -Wno-parentheses -Wno-switch \ - -DGEM_OPENCV_VERSION=\"$(GEM_OPENCV_VERSION)\" -g +# these are setup to be overridden by the packages/Makefile +cvs_root_dir := $(shell cd $(CWD)/.. && pwd) +DESTDIR = $(CWD)/build/ +BUILDLAYOUT_DIR = $(cvs_root_dir)/packages +# turn on weak linking and dlopen support +export MACOSX_DEPLOYMENT_TARGET = 10.3 -UNAME := $(shell uname -s) -ifeq ($(UNAME),Linux) - INCLUDES += `pkg-config --cflags opencv` - LDFLAGS = -export_dynamic -shared - LIBS = `pkg-config --libs opencv` - EXTENSION = pd_linux +# default target +default: all + +.SUFFIXES: .$(EXTENSION) .$(SHARED_LIB) + + +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) \ + cvs_root_dir=$(cvs_root_dir) \ + DESTDIR=$(DESTDIR) \ + prefix=$(prefix) + +#==============================================================================# +# +# COMPILE TARGETS +# +#==============================================================================# + +# this variable is to support old "win" directories, rather than "windows" +BUILDSRC_OS_NAME = $(OS_NAME) + +CFLAGS = -DPD -I$(pd_src)/src -Wall -W $(DEBUG_CFLAGS) -I$(gem_src)/src +LDFLAGS = +LIBS = -lm + +ifeq ($(OS_NAME),darwin) +# 10.4 Tiger + FAT_FLAGS = -arch ppc -arch ppc64 -arch i386 +# 10.5 Leopard +# FAT_FLAGS = -arch ppc -arch ppc7400 -arch ppc64 -arch i386 -arch x86_64 + CFLAGS += -I/sw/include -I$(externals_src)/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN + LDFLAGS += -bundle -bundle_loader $(pd_src)/bin/pd -undefined dynamic_lookup \ + -L/sw/lib -weak_framework Carbon + LIBS += -lc + DYLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup -read_only_relocs warning -L/sw/lib + STRIP = strip -x endif -ifeq ($(UNAME),Darwin) - INCLUDES += -I/System/Library/Frameworks/OpenCV.framework/Headers/ - LDFLAGS = -bundle -undefined dynamic_lookup - LIBS = -lm -framework OpenCV - EXTENSION = pd_darwin +ifeq ($(OS_NAME),linux) + CFLAGS += -I$(externals_src)/pdp/include -DUNIX -Dunix -DDL_OPEN -fPIC + LDFLAGS += -Wl,--export-dynamic -shared -fPIC + LIBS += -lc + DYLIB_LDFLAGS = $(LDFLAGS) + STRIP = strip --strip-unneeded -R .note -R .comment +endif +ifeq ($(OS_NAME),windows) + BUILDSRC_OS_NAME = win + WINDOWS_HACKS = -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' \ + -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' +# These don't seem to be needed: +# -D'PROT_READ=1' \ +# -D'MAP_PRIVATE=2' \ +# -D'O_NDELAY=O_NONBLOCK' + CFLAGS += -mms-bitfields -DMSW -DNT $(WINDOWS_HACKS) + LDFLAGS += -s -shared +# all of these included libs are part of libc in UNIX platforms. All except +# libregex are in DLLs, so they get stripped from the external's .dll binary + LIBS += -L$(pd_src)/bin -L$(pd_src)/obj -lpd \ + -lwsock32 -lpthreadGC2 -lkernel32 -luser32 -lgdi32 -lregex + DYLIB_LDFLAGS = -shared + STRIP = strip --strip-unneeded -R .note -R .comment endif -.SUFFIXES = $(EXTENSION) +CXXFLAGS = $(CFLAGS) + +TCL_RUNTIME_VERSION=$(shell echo 'puts $$tcl_version' | tclsh) +TCL_HEADERS_VERSION=$(shell sed -n 's|^#define TCL_VERSION.*"\([0-9]\.[0-9][0-9]*\)".*|\1|p' /usr/include/tcl.h) + +### C++ files +%.$(EXTENSION): %.cpp +%.$(EXTENSION): %.cc + $(CXX) $(OPT_CFLAGS) $(CXXFLAGS) -o "$*.o" -c "$<" + $(CXX) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS) + chmod a-x "$*.$(EXTENSION)" +# $(STRIP) $*.$(EXTENSION) +# rm -f -- $*.o -SOURCES = pix_opencv_edge.cc pix_opencv_laplace.cc pix_opencv_morphology.cc pix_opencv_distrans.cc pix_opencv_motempl.cc pix_opencv_haarcascade.cc pix_opencv_contours_boundingrect.cc pix_opencv_bgsubstract.cc pix_opencv_contours_convexity.cc pix_opencv_dft.cc pix_opencv_lk.cc pix_opencv_hist_compare.cc pix_opencv_knear.cc pix_opencv_threshold.cc pix_opencv_floodfill.cc pix_opencv_athreshold.cc pix_opencv_bgstats.cc pix_opencv_camshift.cc pix_opencv_hu_compare.cc pix_opencv_pgh_compare.cc pix_opencv_hough_circles.cc pix_opencv_hough_lines.cc pix_opencv_surf.cc pix_opencv_hu_moments.cc +%.o: %.cpp +%.o: %.cc + $(CXX) $(OPT_CFLAGS) $(CXXFLAGS) -o "$*.o" -c "$<" -all: $(SOURCES:.cc=.$(EXTENSION)) + +### C files +%.o: %.c + $(CC) $(OPT_CFLAGS) $(CFLAGS) -o "$*.o" -c "$*.c" %.$(EXTENSION): %.o - gcc $(LDFLAGS) -o $*.$(EXTENSION) $*.o $(LIBS) + $(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS) \ + `test -f $*.libs && cat $*.libs` \ + `my_dylib=$(patsubst $(externals_src)/%,%,$(@D)); test -f $(@D)/lib$${my_dylib}.$(DYLIB_EXTENSION) && echo -L$(@D) -l$$my_dylib` \ + `my_obj=$(patsubst $(externals_src)/%,%,$(@D)); test -f $(@D)/shared/$${my_obj}.o && echo $(@D)/shared/$${my_obj}.o` \ + `test -f $(dir $*)../$(BUILDSRC_OS_NAME)/$(notdir $*).libs && \ + cat $(dir $*)../$(BUILDSRC_OS_NAME)/$(notdir $*).libs` + chmod a-x "$*.$(EXTENSION)" + $(STRIP) $*.$(EXTENSION) + rm -f -- $*.o + + + + +#------------------------------------------------------------------------------# +# ALL + +# if your library isn't included in LIB_TARGETS, it won't be built with +# Pd-extended. For libraries that build on all platforms, add them directly +# below, otherwise add to the correct platforms below. + +# +# WARNING! this MUST be all on one line because the automatic package +# building scripts rely on it being that way. +LIB_TARGETS = adaptive bassemu boids bsaylor creb cxc cyclone deprecated earplug ekext ext13 flashserver flatspace flib freeverb ggee hardware hcs iem_ambi iem_bin_ambi iemlib iemgui iemguts iem_adaptfilt iemmatrix iem_matrix iemxmlrpc iem_delay iem_roomsim iem_spec2 iem_tab jasch_lib loaders mapping markex maxlib mjlib moocow moonlib motex mrpeach msd oscx pan pdcontainer pddp pdogg pmpd sigpack smlib tof toxy unauthorized vbap windowing zexy + +# this is for libraries that don't compile (yet) on all platforms +ifeq ($(OS_NAME),windows) + LIB_TARGETS += +else + ifeq ($(OS_NAME),darwin) + LIB_TARGETS += hid pdp pidip gem2pdp iem16 pdp_opengl apple + else + # GNU/Linux, BSD, IRIX, etc. + LIB_TARGETS += hid pdp pidip gem2pdp iem16 pdp_opengl pdvjtools postlude sixaxis + # externals that depend on Tcl 8.5 or greater + ifeq ($(TCL_HEADERS_VERSION),8.5) + LIB_TARGETS += tclpd + endif + endif +endif + +#------------------------------------------------------------------------------# + +all: $(LIB_TARGETS) + @echo " " + @echo "Compiled externals for $(OS_NAME) aka $(UNAME)" + + +install: $(examplesdir) $(helpdir) $(manualsdir) $(objectsdir) $(readmesdir) \ +all $(patsubst %, %_install,$(LIB_TARGETS)) + @echo " " + @echo "externals install succeeded!" + + +#==============================================================================# +# +# OLD EXTERNALS BUILD SYSTEM TARGETS +# +# This is all stuff related to the externals/build/src/*.c links. The idea is +# that they make for a flat namespace, here they are included as a libdir +# +#==============================================================================# + +FLATSPACE_NAME=flatspace +FLATSPACE_OBJECTS := $(wildcard $(externals_src)/build/src/*.c) + +flatspace: $(FLATSPACE_OBJECTS:.c=.$(EXTENSION)) + +flatspace_install: flatspace $(helpdir) $(objectsdir) + install -d $(DESTDIR)$(objectsdir)/$(FLATSPACE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FLATSPACE_NAME) \ + --author "Numerous" \ + --description "This is a collection of externals in a flat namespace" \ + --license "GNU GPL" + install -p $(FLATSPACE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FLATSPACE_NAME) +# all standard objs' help files, it had to be broken up because the list is +# soo long. They are installed only inside of the libdir since this is so +# messy. We don't these help patches to come up for other objects + install -p \ + $(externals_src)/arraysize/*.pd \ + $(externals_src)/beatpipe/*.pd \ + $(externals_src)/bsaylor/help/*.pd \ + $(externals_src)/control/*/*.pd \ + $(externals_src)/bbogart/chaos/tools/*.pd \ + $(externals_src)/bbogart/*/*.pd \ + $(DESTDIR)$(objectsdir)/$(FLATSPACE_NAME) + install -p \ + $(externals_src)/ff/*.pd \ + $(externals_src)/hcs/folder_list-help.pd \ + $(externals_src)/hcs/split_path-help.pd \ + $(DESTDIR)$(objectsdir)/$(FLATSPACE_NAME) + install -p \ + $(externals_src)/iem/comport/*/*-help.pd \ + $(externals_src)/nusmuk/line3/*.pd \ + $(externals_src)/plugin~/*.pd \ + $(externals_src)/rhythm_estimator/*.p? \ + $(DESTDIR)$(objectsdir)/$(FLATSPACE_NAME) + + +flatspace_clean: + -rm -f -- $(FLATSPACE_OBJECTS:.c=.o) + -rm -f -- $(FLATSPACE_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/build/src/*.*~ + -rm -f -- $(externals_src)/build/src/*.c.bak + + + +#==============================================================================# +# +# PROJECT TARGETS +# +#==============================================================================# + +# this is the template for creating new entries: + +#------------------------------------------------------------------------------# +# TEMPLATE +TEMPLATE_NAME=template +TEMPLATE_OBJECTS := $(wildcard $(externals_src)/template/*.c) +template: $(TEMPLATE_OBJECTS:.c=.$(EXTENSION)) + +template_install: template + install -d $(DESTDIR)$(objectsdir)/$(TEMPLATE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(TEMPLATE_NAME) \ + --author "" \ + --description "" \ + --license "" \ + --version "" + install -p $(TEMPLATE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(TEMPLATE_NAME) + install -d $(DESTDIR)$(helpdir)/$(TEMPLATE_NAME) + install -p $(externals_src)/template/help/*.pd \ + $(DESTDIR)$(helpdir)/$(TEMPLATE_NAME) +# install -d $(manualsdir)/$(TEMPLATE_NAME) +# install -p $(externals_src)/template/manual.txt \ +# $(manualsdir)/$(TEMPLATE_NAME) + install -d $(readmesdir) + install -p $(externals_src)/template/README \ + $(readmesdir)/$(TEMPLATE_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(TEMPLATE_NAME) + install -p $(externals_src)/template/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(TEMPLATE_NAME) + +template_clean: + -rm -f -- $(TEMPLATE_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(TEMPLATE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/template/*.bak + -rm -f -- $(externals_src)/template/*.*~ + + + + +#------------------------------------------------------------------------------# +# AKA.WIIREMOTE +# this is installed into the "io" library +AKA.WIIREMOTE_NAME=io +AKA.WIIREMOTE_SRC := $(wildcard $(externals_src)/io/aka.wiiremote/*.c) + +AKA.WIIREMOTE_OBJECTS := $(AKA.WIIREMOTE_SRC:.c=.o) +$(AKA.WIIREMOTE_OBJECTS) : %.o : %.c + $(CC) $(OPT_CFLAGS) $(CFLAGS) -o "$*.o" -c "$*.c" + +$(externals_src)/io/aka.wiiremote/akawiiremote.$(EXTENSION): $(AKA.WIIREMOTE_OBJECTS) + $(CC) $(LDFLAGS) -o $(externals_src)/io/aka.wiiremote/akawiiremote.$(EXTENSION) \ + $(AKA.WIIREMOTE_OBJECTS) -weak_framework IOBluetooth \ + -weak_framework CoreFoundation +# $(STRIP) $(externals_src)/io/aka.wiiremote/aka.wiiremote.$(EXTENSION) + +aka.wiiremote: $(externals_src)/io/aka.wiiremote/akawiiremote.$(EXTENSION) + +aka.wiiremote_install: aka.wiiremote + install -d $(DESTDIR)$(objectsdir)/$(AKA.WIIREMOTE_NAME) + install -p $(externals_src)/io/aka.wiiremote/aka.wiiremote.$(EXTENSION) \ + $(DESTDIR)$(objectsdir)/$(AKA.WIIREMOTE_NAME) + install -d $(DESTDIR)$(helpdir)/$(AKA.WIIREMOTE_NAME) + install -p $(externals_src)/io/aka.wiiremote/*.pd \ + $(DESTDIR)$(helpdir)/$(AKA.WIIREMOTE_NAME) + install -d $(DESTDIR)$(manualsdir)/$(AKA.WIIREMOTE_NAME) + install -p $(externals_src)/io/aka.wiiremote/*.txt \ + $(DESTDIR)$(manualsdir)/$(AKA.WIIREMOTE_NAME) + +aka.wiiremote_clean: + -rm -f -- $(externals_src)/io/aka.wiiremote/aka.wiiremote.$(EXTENSION) + -rm -f -- $(AKA.WIIREMOTE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/io/aka.wiiremote/*.bak + -rm -f -- $(externals_src)/io/aka.wiiremote/*.*~ + + + +#------------------------------------------------------------------------------# +# APPLE +apple: + make -C $(externals_src)/apple + +apple_install: + make -C $(externals_src)/apple objectsdir="$(objectsdir)" install + +apple_clean: + make -C $(externals_src)/apple clean + + +#------------------------------------------------------------------------------# +# BASSEMU +BASSEMU_NAME=bassemu +BASSEMU_OBJECTS := $(wildcard $(externals_src)/bassemu/*.c) +bassemu: $(BASSEMU_OBJECTS:.c=.$(EXTENSION)) + +bassemu_install: bassemu + install -d $(DESTDIR)$(objectsdir)/$(BASSEMU_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(BASSEMU_NAME) \ + --author "" \ + --description "" \ + --license "" \ + --version "" + install -p $(BASSEMU_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(BASSEMU_NAME) + install -d $(DESTDIR)$(helpdir)/$(BASSEMU_NAME) + install -p $(externals_src)/bassemu/*.pd \ + $(DESTDIR)$(helpdir)/$(BASSEMU_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(BASSEMU_NAME) +# install -p $(externals_src)/bassemu/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(BASSEMU_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/bassemu/README \ + $(DESTDIR)$(readmesdir)/$(BASSEMU_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(BASSEMU_NAME) +# install -p $(externals_src)/bassemu/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(BASSEMU_NAME) + +bassemu_clean: + -rm -f -- $(BASSEMU_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(BASSEMU_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/bassemu/*.bak + -rm -f -- $(externals_src)/bassemu/*.*~ + + + +#------------------------------------------------------------------------------# +# BOIDS +BOIDS_NAME=boids +BOIDS_OBJECTS := $(wildcard $(externals_src)/boids/boids*/*.c) +boids: $(BOIDS_OBJECTS:.c=.$(EXTENSION)) + +boids_install: boids + install -d $(DESTDIR)$(objectsdir)/$(BOIDS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(BOIDS_NAME) \ + --author "Eric Singer, A. Sier, and Jasch" \ + --description "2D and 3D boids flocking algorithm" \ + --license "GNU GPL 2" \ + --version "" + install -p $(BOIDS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(BOIDS_NAME) + install -d $(DESTDIR)$(helpdir)/$(BOIDS_NAME) + install -p $(externals_src)/boids/boids*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(BOIDS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(BOIDS_NAME) +# install -p $(externals_src)/boids/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(BOIDS_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/boids/boids.readme.txt \ + $(DESTDIR)$(readmesdir)/$(BOIDS_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(BOIDS_NAME) +# install -p $(externals_src)/boids/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(BOIDS_NAME) + +boids_clean: + -rm -f -- $(BOIDS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(BOIDS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/boids/*/*.bak + -rm -f -- $(externals_src)/boids/*/*.*~ + + +#------------------------------------------------------------------------------# +# BSAYLOR +BSAYLOR_NAME=bsaylor +BSAYLOR_SRC := $(wildcard $(externals_src)/bsaylor/*~.c) +BSAYLOR_OBJECTS := $(BSAYLOR_SRC:.c=.o) +$(BSAYLOR_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) -O2 -funroll-loops -fomit-frame-pointer -o "$*.o" -c "$*.c" + +bsaylor: $(BSAYLOR_OBJECTS:.o=.$(EXTENSION)) + +bsaylor_install: bsaylor + install -d $(DESTDIR)$(objectsdir)/$(BSAYLOR_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(BSAYLOR_NAME) \ + --author "Benjamin R. Saylor <bensaylor@fastmail.fm>" \ + --description "signal objects" \ + --license "GNU GPL 2" \ + --version "" + install -p $(BSAYLOR_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(BSAYLOR_NAME) + install -d $(DESTDIR)$(helpdir)/$(BSAYLOR_NAME) + install -p $(externals_src)/bsaylor/help/*.pd \ + $(DESTDIR)$(helpdir)/$(BSAYLOR_NAME) + install -p $(externals_src)/bsaylor/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(BSAYLOR_NAME) + install -p $(externals_src)/bsaylor/*.wav $(DESTDIR)$(helpdir)/$(BSAYLOR_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(BSAYLOR_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/bsaylor/README.txt \ + $(DESTDIR)$(readmesdir)/$(BSAYLOR_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(BSAYLOR_NAME) +# install -p $(externals_src)/bsaylor/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(BSAYLOR_NAME) + +bsaylor_clean: + -rm -f -- $(externals_src)/bsaylor/*.$(EXTENSION) + -rm -f -- $(externals_src)/bsaylor/*.o + -rm -f -- $(externals_src)/bsaylor/*.bak + -rm -f -- $(externals_src)/bsaylor/*.*~ + + + +#------------------------------------------------------------------------------# +# CORELIBS +CORELIBS_NAME=corelibs +CORELIBS_OBJECTS := $(wildcard $(externals_src)/corelibs/*.c) +corelibs: $(CORELIBS_OBJECTS:.c=.$(EXTENSION)) + +corelibs_install: corelibs + install -d $(DESTDIR)$(objectsdir)/$(CORELIBS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(CORELIBS_NAME) \ + --author "Miller Puckette and others" \ + --description "core libraries stripped out of Pd" \ + --license "BSD" \ + --version "" + install -p $(CORELIBS_OBJECTS:.c=.$(EXTENSION)) \ + $(DESTDIR)$(objectsdir)/$(CORELIBS_NAME) +# install -d $(DESTDIR)$(helpdir)/$(CORELIBS_NAME) +# install -p $(externals_src)/corelibs/help/*.pd \ +# $(DESTDIR)$(helpdir)/$(CORELIBS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(CORELIBS_NAME) +# install -p $(externals_src)/corelibs/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(CORELIBS_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/corelibs/README \ + $(DESTDIR)$(readmesdir)/$(CORELIBS_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(CORELIBS_NAME) +# install -p $(externals_src)/corelibs/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(CORELIBS_NAME) + +corelibs_clean: + -rm -f -- $(CORELIBS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(CORELIBS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/corelibs/*.bak + -rm -f -- $(externals_src)/corelibs/*.*~ + + + +#------------------------------------------------------------------------------# +# CREB +CREB_NAME=creb +CREB_OBJECTS := $(wildcard $(externals_src)/creb/modules/*.c) +CREB_CXXOBJECTS := $(wildcard $(externals_src)/creb/modules++/*.cc) + +creb: $(CREB_OBJECTS:.c=.$(EXTENSION)) $(CREB_CXXOBJECTS:.cc=.$(EXTENSION)) + +creb_install: creb + install -d $(DESTDIR)$(objectsdir)/$(CREB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(CREB_NAME) \ + --author "Tom Schouten <tom@zwizwa.be>" \ + --description "This is a collection of pd externals. My bag of tricks." \ + --license "GNU GPL 2" \ + --version "0.9.2" + install -p $(externals_src)/creb/abs/*.pd $(DESTDIR)$(objectsdir)/$(CREB_NAME) + install -p $(CREB_OBJECTS:.c=.$(EXTENSION)) \ + $(CREB_CXXOBJECTS:.cc=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(CREB_NAME) + install -d $(DESTDIR)$(helpdir)/$(CREB_NAME) + install -p $(externals_src)/creb/doc/*.* $(DESTDIR)$(helpdir)/$(CREB_NAME) + install -p $(externals_src)/creb/doc/*.* $(DESTDIR)$(objectsdir)/$(CREB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/creb/doc/reference.txt \ + $(DESTDIR)$(readmesdir)/$(CREB_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(CREB_NAME) + install -p $(externals_src)/creb/doc/examples/*.* $(DESTDIR)$(examplesdir)/$(CREB_NAME) + +creb_clean: + -rm -f -- $(CREB_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(CREB_OBJECTS:.c=.o) + -rm -f -- $(CREB_CXXOBJECTS:.cc=.$(EXTENSION)) + -rm -f -- $(CREB_CXXOBJECTS:.cc=.o) + -rm -f -- $(externals_src)/creb/*/*.bak + -rm -f -- $(externals_src)/creb/*/*.*~ + + +#------------------------------------------------------------------------------# +# CXC +CXC_NAME=cxc +CXC_OBJECTS := $(wildcard $(externals_src)/cxc/???*.c) +cxc: $(CXC_OBJECTS:.c=.$(EXTENSION)) + +cxc_install: cxc + install -d $(DESTDIR)$(objectsdir)/$(CXC_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(CXC_NAME) \ + --author "jdl@xdv.org" \ + --description "" \ + --license "" \ + --version "" + install -p $(CXC_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(CXC_NAME) + install -d $(DESTDIR)$(helpdir)/$(CXC_NAME) + install -p $(wildcard $(externals_src)/cxc/reference/*.pd) \ + $(DESTDIR)$(helpdir)/$(CXC_NAME) + install -p $(wildcard $(externals_src)/cxc/reference/*.pd) \ + $(DESTDIR)$(objectsdir)/$(CXC_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(CXC_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/cxc/README \ + $(DESTDIR)$(readmesdir)/$(CXC_NAME).txt + +cxc_clean: + -rm -f -- $(CXC_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/cxc/*.o + -rm -f -- $(externals_src)/cxc/*.bak + -rm -f -- $(externals_src)/cxc/*.*~ + + +#------------------------------------------------------------------------------# +# CYCLONE +CYCLONE_NAME=cyclone +# cyclone is compiled straight into $(OUT_DIR) +CYCLONE_OUT_DIR=$(DESTDIR)$(objectsdir)/$(CYCLONE_NAME) +cyclone: $(bindir) + $(MAKE) OPT_CFLAGS="-O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing -fPIC" \ + -C $(externals_src)/miXed/cyclone + +cyclone_install: cyclone + install -d $(DESTDIR)$(objectsdir)/$(CYCLONE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(CYCLONE_NAME) \ + --author "Kzrysztof Czaja" \ + --license "BSD" \ + --description "a library for porting and running Max/MSP patches in Pd" +# kludge to build as one-file-per-class using the miXed build system + cd $(externals_src)/miXed/cyclone && $(MAKE) OUT_DIR=$(CYCLONE_OUT_DIR) +# install "maxmode" libraries into subdir, so they don't override the libdir + install -d $(DESTDIR)$(objectsdir)/$(CYCLONE_NAME)/maxmode + install -p $(externals_src)/miXed/bin/cyclone.$(EXTENSION) \ + $(externals_src)/miXed/bin/hammer.$(EXTENSION) \ + $(externals_src)/miXed/bin/sickle.$(EXTENSION) \ + $(externals_src)/miXed/bin/maxmode.$(EXTENSION) \ + $(DESTDIR)$(objectsdir)/$(CYCLONE_NAME)/maxmode +# install "cyclist" command line app with pd + -install -p -m0755 $(externals_src)/miXed/bin/cyclist $(DESTDIR)$(bindir) + install -d $(DESTDIR)$(helpdir)/$(CYCLONE_NAME) + install -p $(externals_src)/miXed/doc/help/cyclone/*.* \ + $(DESTDIR)$(helpdir)/$(CYCLONE_NAME) + install -p $(externals_src)/miXed/doc/help/cyclone/*.* \ + $(DESTDIR)$(objectsdir)/$(CYCLONE_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(CYCLONE_NAME) + install -d $(DESTDIR)$(examplesdir)/$(CYCLONE_NAME) + install -p $(externals_src)/miXed/test/cyclone/*.* \ + $(DESTDIR)$(examplesdir)/$(CYCLONE_NAME) + + +cyclone_clean: + -$(MAKE) -C $(externals_src)/miXed/cyclone $(DEST_PATHS) clean + + + + +#------------------------------------------------------------------------------# +# DEPRECATED +DEPRECATED_NAME=deprecated +DEPRECATED_OBJECTS := $(wildcard $(externals_src)/deprecated/*.c) +deprecated: $(DEPRECATED_OBJECTS:.c=.$(EXTENSION)) + +deprecated_install: deprecated + install -d $(DESTDIR)$(objectsdir)/$(DEPRECATED_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(DEPRECATED_NAME) \ + --author "numerous" \ + --description "a collection of deprecated objects that still have some use" \ + --license "" \ + --version "" + install -p $(DEPRECATED_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(DEPRECATED_NAME) + install -d $(DESTDIR)$(helpdir)/$(DEPRECATED_NAME) + install -p $(externals_src)/deprecated/help/*.pd \ + $(DESTDIR)$(helpdir)/$(DEPRECATED_NAME) + install -d $(DESTDIR)$(manualsdir)/$(DEPRECATED_NAME) + install -p $(externals_src)/deprecated/doc/*.* \ + $(DESTDIR)$(manualsdir)/$(DEPRECATED_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/deprecated/README \ +# $(DESTDIR)$(readmesdir)/$(DEPRECATED_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(DEPRECATED_NAME) + install -p $(externals_src)/deprecated/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(DEPRECATED_NAME) + +deprecated_clean: + -rm -f -- $(DEPRECATED_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(DEPRECATED_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/deprecated/*.bak + -rm -f -- $(externals_src)/deprecated/*.*~ + + + +#------------------------------------------------------------------------------# +# DEVELLIBS +DEVELLIBS_NAME=devellibs +DEVELLIBS_OBJECTS := $(wildcard $(externals_src)/devellibs/*.c) +devellibs: $(DEVELLIBS_OBJECTS:.c=.$(EXTENSION)) + +devellibs_install: devellibs + install -d $(DESTDIR)$(objectsdir)/$(DEVELLIBS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(DEVELLIBS_NAME) \ + --author "Miller Puckette and others" \ + --description "core libraries stripped out of Pd-devel" \ + --license "BSD" \ + --version "" + install -p $(DEVELLIBS_OBJECTS:.c=.$(EXTENSION)) + $(DESTDIR)$(objectsdir)/$(DEVELLIBS_NAME) + install -d $(DESTDIR)$(helpdir)/$(DEVELLIBS_NAME) + install -p $(externals_src)/devellibs/help/*.pd \ + $(DESTDIR)$(helpdir)/$(DEVELLIBS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(DEVELLIBS_NAME) +# install -p $(externals_src)/devellibs/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(DEVELLIBS_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/devellibs/README \ + $(DESTDIR)$(readmesdir)/$(DEVELLIBS_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(DEVELLIBS_NAME) + install -p $(externals_src)/devellibs/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(DEVELLIBS_NAME) + +devellibs_clean: + -rm -f -- $(DEVELLIBS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(DEVELLIBS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/devellibs/*.bak + -rm -f -- $(externals_src)/devellibs/*.*~ + + + + + +#------------------------------------------------------------------------------# +# EKEXT +EKEXT_NAME=ekext +EKEXT_OBJECTS := $(wildcard $(externals_src)/ekext/*/*.c) \ + $(wildcard $(externals_src)/ekext/l*/*/*.c) +ekext: $(EKEXT_OBJECTS:.c=.$(EXTENSION)) + +ekext_install: ekext + install -d $(DESTDIR)$(objectsdir)/$(EKEXT_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(EKEXT_NAME) \ + --author "Ed Kelly <morph_2016@yahoo.co.uk>" \ + --description "" \ + --license "BSD" \ + --version "" + install -p $(EKEXT_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(EKEXT_NAME) + install -d $(DESTDIR)$(helpdir)/$(EKEXT_NAME) + install -p $(externals_src)/ekext/*/*help*.pd \ + $(DESTDIR)$(helpdir)/$(EKEXT_NAME) + install -p $(externals_src)/ekext/*/*help*.pd \ + $(DESTDIR)$(objectsdir)/$(EKEXT_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(EKEXT_NAME) +# install -p $(externals_src)/ekext/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(EKEXT_NAME) +# install -p $(externals_src)/ekext/README \ +# $(DESTDIR)$(readmesdir)/$(EKEXT_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(EKEXT_NAME) + install -p $(externals_src)/ekext/peakit~/peakit-listmoses.pd \ + $(DESTDIR)$(examplesdir)/$(EKEXT_NAME) + +ekext_clean: + -rm -f -- $(EKEXT_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(EKEXT_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/ekext/*/*.bak + -rm -f -- $(externals_src)/ekext/*/*.*~ + + + + +#------------------------------------------------------------------------------# +# EXT13 +ext13: + make -C $(externals_src)/ext13 + +ext13_install: + make -C $(externals_src)/ext13 objectsdir="$(objectsdir)" install + +ext13_clean: + make -C $(externals_src)/ext13 clean + + + +#------------------------------------------------------------------------------# +# FFTease +FFTEASE_NAME=fftease +FFTEASE_LIB_OBJECTS := $(wildcard $(externals_src)/fftease/lib/*.c) +FFTEASE_OBJECTS := $(wildcard $(externals_src)/fftease/*.c) +fftease_lib: $(FFTEASE_LIB_OBJECTS:.c=.o) + $(CC) $(DYLIB_LDFLAGS) \ + -o $(externals_src)/fftease/libfftease.$(DYLIB_EXTENSION) \ + $(FFTEASE_LIB_OBJECTS:.c=.o) + +fftease: fftease_lib $(FFTEASE_OBJECTS:.c=.$(EXTENSION)) + +fftease_install: fftease + install -d $(DESTDIR)$(objectsdir)/$(FFTEASE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FFTEASE_NAME) \ + --author "Eric Lyon and Christopher Penrose" \ + --description "FFTease is a collection of objects implementing various forms of spectral sound processing. These include an additive-synthesis phase vocoder, noise reduction, cross synthesis, and more unusual forms of spectral processing." \ + --license "MIT License" \ + --version "2.0" + install -p $(FFTEASE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FFTEASE_NAME) + install -d $(DESTDIR)$(helpdir)/$(FFTEASE_NAME) + install -p $(externals_src)/fftease/help/*.pd \ + $(DESTDIR)$(helpdir)/$(FFTEASE_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(FFTEASE_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/fftease/README \ + $(DESTDIR)$(readmesdir)/$(FFTEASE_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(FFTEASE_NAME) + install -p $(externals_src)/fftease/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(FFTEASE_NAME) + +fftease_clean: + -rm -f -- $(externals_src)/fftease/*.$(EXTENSION) + -rm -f -- $(externals_src)/fftease/*.o + -rm -f -- $(externals_src)/fftease/*.bak + -rm -f -- $(externals_src)/fftease/*.*~ + + + +#------------------------------------------------------------------------------# +# FILE +FILE_NAME=file +FILE_OBJECTS := $(wildcard $(externals_src)/file/*.c) +file: $(FILE_OBJECTS:.c=.$(EXTENSION)) + +file_install: file + install -d $(DESTDIR)$(objectsdir)/$(FILE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FILE_NAME) \ + --author "" \ + --description "" \ + --license "" \ + --version "" + install -p $(FILE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FILE_NAME) + install -d $(DESTDIR)$(helpdir)/$(FILE_NAME) + install -p $(externals_src)/file/help/*.pd \ + $(DESTDIR)$(helpdir)/$(FILE_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(FILE_NAME) +# install -p $(externals_src)/file/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(FILE_NAME) +# install -p $(externals_src)/file/README \ +# $(DESTDIR)$(readmesdir)/$(FILE_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(FILE_NAME) +# install -p $(externals_src)/file/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(FILE_NAME) + +file_clean: + -rm -f -- $(FILE_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(FILE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/file/*.bak + -rm -f -- $(externals_src)/file/*.*~ + + + + +#------------------------------------------------------------------------------# +# FLIB +FLIB_NAME=flib +# exclude the flib.c file for the single-file library +# plus ha~.c doesn't compile at the moment. +FLIB_OBJECTS := $(wildcard $(externals_src)/postlude/flib/src/[a-ei-z]*.c) +flib: $(FLIB_OBJECTS:.c=.$(EXTENSION)) + +flib_install: flib + install -d $(DESTDIR)$(objectsdir)/$(FLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FLIB_NAME) \ + --author "Jamie Bullock" \ + --description "library for feature extraction" \ + --license "GNU GPL" + install -p $(FLIB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(FLIB_NAME) + install -p $(externals_src)/postlude/flib/doc/*.pd \ + $(DESTDIR)$(helpdir)/$(FLIB_NAME) + install -p $(externals_src)/postlude/flib/doc/*.pd \ + $(DESTDIR)$(objectsdir)/$(FLIB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(FLIB_NAME) +# install -p $(externals_src)/postlude/flib/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(FLIB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/postlude/flib/README \ + $(DESTDIR)$(readmesdir)/$(FLIB_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(FLIB_NAME) +# install -p $(externals_src)/postlude/flib/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(FLIB_NAME) + +flib_clean: + -rm -f -- $(FLIB_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(FLIB_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/postlude/flib/*/*.bak + -rm -f -- $(externals_src)/postlude/flib/*/*.*~ + + + +#------------------------------------------------------------------------------# +# FRANKENSTEIN +FRANKENSTEIN_NAME=frankenstein +# exclude test.c since it is not used +FRANKENSTEIN_OBJECTS := $(wildcard $(externals_src)/frankenstein/*.c) +frankenstein: $(FRANKENSTEIN_OBJECTS:.c=.$(EXTENSION)) + +frankenstein_install: frankenstein + install -d $(DESTDIR)$(objectsdir)/$(FRANKENSTEIN_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FRANKENSTEIN_NAME) \ + --author "" \ + --description "" \ + --license "" \ + --version "" + install -p $(FRANKENSTEIN_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FRANKENSTEIN_NAME) +# install -d $(DESTDIR)$(helpdir)/$(FRANKENSTEIN_NAME) +# install -p $(externals_src)/frankenstein/help/*.pd \ +# $(DESTDIR)$(helpdir)/$(FRANKENSTEIN_NAME) + install -d $(DESTDIR)$(manualsdir)/$(FRANKENSTEIN_NAME) + install -p $(externals_src)/frankenstein/doc/*.* \ + $(DESTDIR)$(manualsdir)/$(FRANKENSTEIN_NAME) + install -d $(DESTDIR)$(examplesdir)/$(FRANKENSTEIN_NAME) + install -p $(externals_src)/frankenstein/patches/*.* \ + $(DESTDIR)$(examplesdir)/$(FRANKENSTEIN_NAME) + +frankenstein_clean: + -rm -f -- $(externals_src)/frankenstein/*.$(EXTENSION) + -rm -f -- $(externals_src)/frankenstein/*.o + -rm -f -- $(externals_src)/frankenstein/*.bak + -rm -f -- $(externals_src)/frankenstein/*.*~ + + + +#------------------------------------------------------------------------------# +# FREEVERB +FREEVERB_NAME=freeverb +FREEVERB_OBJECTS := $(wildcard $(externals_src)/freeverb~/*.c) +freeverb: $(FREEVERB_OBJECTS:.c=.$(EXTENSION)) + +freeverb_install: freeverb + install -d $(DESTDIR)$(objectsdir)/$(FREEVERB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FREEVERB_NAME) \ + --author "Olaf Matthes and Jezar Wakefield" \ + --description "Freeverb is a simple implementation of the standard Schroeder/Moorer reverb model" \ + --license "GNU GPL" \ + --version "1.2" + install -p $(FREEVERB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FREEVERB_NAME) + install -d $(DESTDIR)$(helpdir)/$(FREEVERB_NAME) + install -p $(wildcard $(externals_src)/freeverb~/*-help.pd) \ + $(DESTDIR)$(helpdir)/$(FREEVERB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(FREEVERB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/freeverb~/README \ + $(DESTDIR)$(readmesdir)/$(FREEVERB_NAME).txt + + +freeverb_clean: + -rm -f -- $(externals_src)/freeverb~/*.$(EXTENSION) + -rm -f -- $(externals_src)/freeverb~/*.o + -rm -f -- $(externals_src)/freeverb~/*.bak + -rm -f -- $(externals_src)/freeverb~/*.*~ + + + +#------------------------------------------------------------------------------# +# GEM2PDP +GEM2PDP_NAME=gem2pdp +GEM2PDP_OBJECTS := $(wildcard $(externals_src)/gem2pdp/*.cpp) +$(externals_src)/gem2pdp/configure: $(externals_src)/gem2pdp/configure.ac + cd $(externals_src)/gem2pdp && autoconf + +$(externals_src)/gem2pdp/Makefile: $(externals_src)/gem2pdp/Makefile.in + cd $(externals_src)/gem2pdp && ./configure --with-pddir=$(pd_src) \ + --with-gemdir=$(gem_src) --with-pdpdir=$(externals_src)/pdp + +gem2pdp: $(externals_src)/gem2pdp/configure $(externals_src)/gem2pdp/Makefile + $(MAKE) -C $(externals_src)/gem2pdp + +gem2pdp_install: gem2pdp + install -d $(DESTDIR)$(objectsdir) +# install -d $(DESTDIR)$(objectsdir)/$(GEM2PDP_NAME) +# $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(GEM2PDP_NAME) \ +# --author "Yves Degoyon, Jamie Tittle, Georg Holzmann" \ +# --description "Bridges between Gem and PDP" \ +# --version "0.6" + install -p $(GEM2PDP_OBJECTS:.cpp=.$(EXTENSION)) $(DESTDIR)$(objectsdir) +# install -d $(DESTDIR)$(helpdir)/$(GEM2PDP_NAME) + install -d $(DESTDIR)$(helpdir) + install -p $(externals_src)/gem2pdp/*.pd $(DESTDIR)$(helpdir) +# install -d $(DESTDIR)$(manualsdir)/$(GEM2PDP_NAME) +# install -p $(externals_src)/gem2pdp/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(GEM2PDP_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/gem2pdp/README \ + $(DESTDIR)$(readmesdir)/$(GEM2PDP_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(GEM2PDP_NAME) +# install -p $(externals_src)/gem2pdp/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(GEM2PDP_NAME) + +gem2pdp_clean: + -rm -rf -- $(externals_src)/gem2pdp/autom4te.cache + -rm -f -- $(externals_src)/gem2pdp/config.status + -rm -f -- $(externals_src)/gem2pdp/config.log + -rm -f -- $(externals_src)/gem2pdp/configure + -rm -f -- $(externals_src)/gem2pdp/Makefile + -rm -f -- $(GEM2PDP_OBJECTS:.cpp=.$(EXTENSION)) + -rm -f -- $(externals_src)/gem2pdp/*.o + -rm -f -- $(externals_src)/gem2pdp/*.bak + -rm -f -- $(externals_src)/gem2pdp/*.*~ + + +#------------------------------------------------------------------------------# +# GGEE +GGEE_NAME=ggee +# experimental needs C++ and tools is command line, so exclude +GGEE_OBJECTS := $(wildcard $(externals_src)/ggee/[a-df-su-z]*/*.c) +ggee: $(GGEE_OBJECTS:.c=.$(EXTENSION)) + +ggee_install: ggee + install -d $(DESTDIR)$(objectsdir)/$(GGEE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(GGEE_NAME) \ + --author "Guenter Geiger" \ + --description "" \ + --license "BSD" \ + --version "0.25" + install -p $(GGEE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(GGEE_NAME) + install -p $(shell ls -1 $(externals_src)/vbap/*.pd | grep -v '-help.pd') \ + $(DESTDIR)$(objectsdir)/$(GGEE_NAME) + install -d $(DESTDIR)$(helpdir)/$(GGEE_NAME) + install -p $(externals_src)/ggee/*/*-help.pd \ + $(externals_src)/ggee/*/*.gif $(DESTDIR)$(helpdir)/$(GGEE_NAME) + install -p $(externals_src)/ggee/*/*-help.pd \ + $(externals_src)/ggee/*/*.gif $(DESTDIR)$(objectsdir)/$(GGEE_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(GGEE_NAME) +# install -p $(externals_src)/ggee/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(GGEE_NAME) +# install -p $(externals_src)/ggee/README \ +# $(DESTDIR)$(readmesdir)/$(GGEE_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(GGEE_NAME) +# install -p $(externals_src)/ggee/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(GGEE_NAME) + +ggee_clean: + -rm -f -- $(GGEE_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(GGEE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/ggee/*.bak + -rm -f -- $(externals_src)/ggee/*.*~ + + +#------------------------------------------------------------------------------# +# HARDWARE +HARDWARE_NAME=hardware +# memPIO has some special deps, so don't include it yet. +# multio.c requires libusb, so don't include it yet... <hans@at.or.at> +#HARDWARE_OBJECTS := $(wildcard $(externals_src)/hardware/*/*.cpp) \ +#$(wildcard $(externals_src)/hardware/*/*.c) +#hardware: $(HARDWARE_OBJECTS:.c=.$(EXTENSION)) $(HARDWARE_OBJECTS:.cpp=.$(EXTENSION)) +hardware: + +hardware_install: hardware + install -d $(DESTDIR)$(objectsdir)/$(HARDWARE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HARDWARE_NAME) \ + --description "objects for working with hardware sensor boxes" \ + --license "GNU GPL" +# nothing built from source yet +# install -p $(HARDWARE_OBJECTS:.c=.$(EXTENSION)) \ +# $(DESTDIR)$(objectsdir)/$(HARDWARE_NAME) + install -p $(externals_src)/hardware/lanbox/lanbox.pd \ + $(DESTDIR)$(objectsdir)/$(HARDWARE_NAME) + install -d $(DESTDIR)$(helpdir)/$(HARDWARE_NAME) + install -p $(externals_src)/hardware/*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(HARDWARE_NAME) + install -d $(DESTDIR)$(manualsdir)/$(HARDWARE_NAME) + install -p $(externals_src)/hardware/memPIO/README.txt \ + $(DESTDIR)$(manualsdir)/$(HARDWARE_NAME)/memPIO.txt + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/hardware/README.txt \ + $(DESTDIR)$(readmesdir)/$(HARDWARE_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(HARDWARE_NAME) +# install -p $(externals_src)/hardware/*/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(HARDWARE_NAME) + +hardware_clean: + -rm -f -- $(externals_src)/hardware/*/*.$(EXTENSION) + -rm -f -- $(externals_src)/hardware/*/*.o + -rm -f -- $(externals_src)/hardware/*/*.bak + -rm -f -- $(externals_src)/hardware/*/*.*~ + + +#------------------------------------------------------------------------------# +# HCS +HCS_NAME=hcs +HCS_OBJECTS := $(wildcard $(externals_src)/hcs/*.c) +hcs: $(HCS_OBJECTS:.c=.$(EXTENSION)) + +hcs_install: hcs + install -d $(DESTDIR)$(objectsdir)/$(HCS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HCS_NAME) \ + --author "Hans-Christoph Steiner <hans@at.or.at>" \ + --description "random grab bag of object prototypes" \ + --license "GNU GPL" \ + --version "" + install -p $(HCS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(HCS_NAME) + install -p $(shell ls -1 $(externals_src)/hcs/*.pd | \ + grep -v '\-help.pd') $(DESTDIR)$(objectsdir)/$(HCS_NAME) +# hmm, these don't have a home yet... + install -p $(externals_src)/hcs/general/*.pd $(DESTDIR)$(objectsdir)/$(HCS_NAME) + install -d $(DESTDIR)$(helpdir)/$(HCS_NAME) + install -p $(externals_src)/hcs/*-help.pd \ + $(DESTDIR)$(helpdir)/$(HCS_NAME) + install -p $(externals_src)/hcs/*.gif \ + $(DESTDIR)$(helpdir)/$(HCS_NAME) + install -p $(externals_src)/hcs/*-help.pd \ + $(DESTDIR)$(objectsdir)/$(HCS_NAME) + install -p $(externals_src)/hcs/*.gif \ + $(DESTDIR)$(objectsdir)/$(HCS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(HCS_NAME) +# install -p $(externals_src)/hcs/README* $(externals_src)/hcs/TODO \ +# $(DESTDIR)$(manualsdir)/$(HCS_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/hcs/README \ +# $(DESTDIR)$(readmesdir)/$(HCS_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(HCS_NAME) + install -p $(externals_src)/hcs/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(HCS_NAME) + +hcs_clean: + -rm -f -- $(HCS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(HCS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/hcs/*.bak + -rm -f -- $(externals_src)/hcs/*.*~ + + + +#------------------------------------------------------------------------------# +# HID +HID_NAME = hid +ifeq ($(OS_NAME),windows) + HID_CFLAGS = $(OPT_CFLAGS) $(CFLAGS) + HID_LIBS = $(LIBS) -lhid -lsetupapi +else + ifeq ($(OS_NAME),darwin) + FRAMEWORKS = Carbon IOKit ForceFeedback + HID_CFLAGS = $(OPT_CFLAGS) $(CFLAGS) -I$(externals_src)/hcs/hid/HID\ Utilities\ Source + HID_UTILITIES_SOURCE = $(externals_src)/hcs/hid/HID\ Utilities\ Source + HID_LIBS = $(LIBS) -L$(HID_UTILITIES_SOURCE)/build \ + -L$(HID_UTILITIES_SOURCE)/build/Default \ + -lHIDUtilities $(patsubst %,-weak_framework %,$(FRAMEWORKS)) + else + HID_CFLAGS = $(OPT_CFLAGS) $(CFLAGS) + HID_LIBS = $(LIBS) + endif +endif + +HID_SRC = input_arrays.c hid_$(OS_NAME).c hid.c +HID_OBJECTS := $(patsubst %.c, $(externals_src)/hcs/hid/%.o, $(HID_SRC)) +$(HID_OBJECTS) : %.o : %.c + $(CC) $(HID_CFLAGS) -o "$*.o" -c "$*.c" + +$(HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a: +# Apple changed the XCode CLI tool's name in xcode2... arg +# if on non-Mac OS X, this target just echos a message +ifeq ($(UNAME),Darwin) + cd $(HID_UTILITIES_SOURCE) && \ + (test -x /usr/bin/xcodebuild && /usr/bin/xcodebuild) || \ + (test -x /usr/bin/pbxbuild && /usr/bin/pbxbuild) || \ + echo "Not building Apple HID Utilities" +endif + +$(externals_src)/hcs/hid/hid.$(EXTENSION): $(HID_OBJECTS) \ +$(HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a + $(CC) $(LDFLAGS) -o $(externals_src)/hcs/hid/hid.$(EXTENSION) \ + $(HID_OBJECTS) $(HID_LIBS) +# $(STRIP) $(externals_src)/hcs/hid/hid.$(EXTENSION) + +hid: $(externals_src)/hcs/hid/hid.$(EXTENSION) + +hid_install: hid + install -d $(DESTDIR)$(objectsdir)/$(HID_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HID_NAME) \ + --author "Hans-Christoph Steiner" \ + --description "" \ + --license "GNU GPL" \ + --version "" + -install -p $(externals_src)/hcs/hid/hid.$(EXTENSION) $(DESTDIR)$(objectsdir) + install -p $(externals_src)/hcs/hid/*.pd $(DESTDIR)$(objectsdir)/$(HID_NAME) + install -d $(DESTDIR)$(helpdir)/$(HID_NAME) + install -p $(externals_src)/hcs/hid/doc/*.pd $(DESTDIR)$(helpdir)/$(HID_NAME) + install -p $(externals_src)/hcs/hid/doc/*.pd $(DESTDIR)$(objectsdir)/$(HID_NAME) + install -p $(externals_src)/hcs/hid/examples/*.pd $(DESTDIR)$(helpdir)/$(HID_NAME) + install -d $(DESTDIR)$(examplesdir)/$(HID_NAME) + install -p $(externals_src)/hcs/hid/examples/*.pd $(DESTDIR)$(examplesdir)/$(HID_NAME) + +hid_clean: + -rm -f -- $(externals_src)/hcs/hid/*.o + -rm -f -- $(externals_src)/hcs/hid/hid.$(EXTENSION) + -rm -f -- $(externals_src)/hcs/hid/*.bak + -rm -f -- $(externals_src)/hcs/hid/*.*~ + -rm -f -- $(HID_UTILITIES_SOURCE)/build/libHIDUtilities.a + -rm -f -- $(HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a + + +#------------------------------------------------------------------------------# +# HIDIN +HIDIN_NAME=hidin +HIDIN_OBJECTS := $(wildcard $(externals_src)/olafmatt/hidin/*.c) +HIDIN_DLL := $(externals_src)/olafmatt/hidin/hidin.$(EXTENSION) + +$(HIDIN_DLL): $(HIDIN_OBJECTS:.c=.o) + $(CC) $(LDFLAGS) -o "$(HIDIN_DLL)" $(HIDIN_OBJECTS:.c=.o) $(LIBS) -lhid \ + -lsetupapi + chmod a-x "$(HIDIN_DLL)" + $(STRIP) $(HIDIN_DLL) + +hidin: $(HIDIN_DLL) + +hidin_install: hidin + install -d $(DESTDIR)$(objectsdir)/$(HIDIN_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HIDIN_NAME) \ + --author "Olaf Matthes" \ + --description "HID input for Windows HID" \ + --license "GNU GPL" + install -p $(HIDIN_DLL) $(DESTDIR)$(objectsdir)/$(HIDIN_NAME) +# install -d $(DESTDIR)$(helpdir)/$(HIDIN_NAME) +# install -p $(externals_src)/olafmatt/hidin/help/*.pd \ +# $(DESTDIR)$(helpdir)/$(HIDIN_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(HIDIN_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/olafmatt/hidin/README \ +# $(DESTDIR)$(readmesdir)/$(HIDIN_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(HIDIN_NAME) +# install -p $(externals_src)/olafmatt/hidin/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(HIDIN_NAME) + +hidin_clean: + -rm -f -- $(HIDIN_DLL) + -rm -f -- $(HIDIN_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/olafmatt/hidin/*.bak + -rm -f -- $(externals_src)/olafmatt/hidin/*.*~ + + + +#------------------------------------------------------------------------------# +# HIDIO +HIDIO_NAME = hidio +ifeq ($(OS_NAME),windows) + HIDIO_SRC = hidio_windows.c hidio_types.c hidio.c + HIDIO_CFLAGS = $(CFLAGS) + HIDIO_LIBS = $(LIBS) -lhid -lsetupapi +endif +ifeq ($(OS_NAME),darwin) + HIDIO_SRC = hidio_darwin.c hidio_types.c hidio.c + FRAMEWORKS = Carbon IOKit ForceFeedback + HIDIO_CFLAGS = $(CFLAGS) -I$(externals_src)/io/hidio/HID\ Utilities\ Source + HIDIO_HID_UTILITIES_SOURCE = $(externals_src)/io/hidio/HID\ Utilities\ Source + HIDIO_LIBS = $(LIBS) -L$(HIDIO_HID_UTILITIES_SOURCE)/build \ + -L$(HIDIO_HID_UTILITIES_SOURCE)/build/Default \ + -lHIDUtilities $(patsubst %,-weak_framework %,$(FRAMEWORKS)) +endif +ifeq ($(OS_NAME),linux) + HIDIO_SRC = input_arrays.c hidio_linux.c hidio_types.c hidio.c + HIDIO_CFLAGS = $(CFLAGS) + HIDIO_LIBS = $(LIBS) +endif + +HIDIO_OBJECTS := $(patsubst %.c, $(externals_src)/io/hidio/%.o, $(HIDIO_SRC)) +$(HIDIO_OBJECTS) : %.o : %.c + $(CC) $(HIDIO_CFLAGS) -o "$*.o" -c "$*.c" + +$(HIDIO_HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a: +# Apple changed the XCode CLI tool's name in xcode2... arg +# if on non-Mac OS X, this target just echos a message +ifeq ($(UNAME),Darwin) + cd $(HIDIO_HID_UTILITIES_SOURCE) && \ + (test -x /usr/bin/xcodebuild && /usr/bin/xcodebuild) || \ + (test -x /usr/bin/pbxbuild && /usr/bin/pbxbuild) || \ + echo "Not building Apple HID Utilities" +endif + +$(externals_src)/io/hidio/hidio.$(EXTENSION): $(HIDIO_OBJECTS) \ +$(HIDIO_HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a + $(CC) $(LDFLAGS) -o $(externals_src)/io/hidio/hidio.$(EXTENSION) \ + $(HIDIO_OBJECTS) $(HIDIO_LIBS) +# $(STRIP) $(externals_src)/io/hidio/hidio.$(EXTENSION) + +hidio: $(externals_src)/io/hidio/hidio.$(EXTENSION) + +hidio_install: hidio + install -d $(DESTDIR)$(objectsdir)/$(HIDIO_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HIDIO_NAME) \ + --author "Hans-Christoph Steiner <hans@at.or.at>, Olaf Matthes <olaf@nullmedium.de>, David Merrill <dmerrill@media.mit.edu>" \ + --description "I/O for USB HID and other supported devices" \ + --license "GNU GPLv2" \ + --version "0.0" + -install -p $(externals_src)/io/hidio/hidio.$(EXTENSION) $(DESTDIR)$(objectsdir) +# install -p $(externals_src)/io/hidio/*.pd $(DESTDIR)$(objectsdir)/$(HIDIO_NAME) + install -d $(DESTDIR)$(helpdir)/$(HIDIO_NAME) + install -p $(externals_src)/io/hidio/*-help.pd $(DESTDIR)$(helpdir)/$(HIDIO_NAME) +# install -p $(externals_src)/io/hidio/examples/*.pd $(DESTDIR)$(helpdir)/$(HIDIO_NAME) +# install -d $(DESTDIR)$(examplesdir)/$(HIDIO_NAME) +# install -p $(externals_src)/io/hidio/examples/*.pd $(DESTDIR)$(examplesdir)/$(HIDIO_NAME) + +hidio_clean: + -rm -f -- $(HIDIO_OBJECTS:.c=.o) + -rm -f -- $(HIDIO_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/io/hidio/*.bak + -rm -f -- $(externals_src)/io/hidio/*.*~ + -rm -f -- $(HIDIO_HID_UTILITIES_SOURCE)/build/libHIDUtilities.a + -rm -f -- $(HIDIO_HID_UTILITIES_SOURCE)/build/Default/libHIDUtilities.a + + + + +#------------------------------------------------------------------------------# +# IEM_AMBI +IEM_AMBI_NAME=iem_ambi +# exclude the files for the single-file library format +IEM_AMBI_OBJECTS := $(wildcard $(externals_src)/iem/iem_ambi/src/[a-hj-z]*.c) +iem_ambi: $(IEM_AMBI_OBJECTS:.c=.$(EXTENSION)) + +iem_ambi_install: iem_ambi + install -d $(DESTDIR)$(objectsdir)/$(IEM_AMBI_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEM_AMBI_NAME) \ + --author "IEM/KUG, Graz, Austria" \ + --description "calculate ambisonic encoder matrices rotation matrices and decoder matrices from 1st to 4th order in 2D or 3D." \ + --license "GNU GPL" \ + --version "" + install -p $(IEM_AMBI_OBJECTS:.c=.$(EXTENSION)) \ + $(DESTDIR)$(objectsdir)/$(IEM_AMBI_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEM_AMBI_NAME) + install -p $(externals_src)/iem/iem_ambi/*.pd \ + $(DESTDIR)$(helpdir)/$(IEM_AMBI_NAME) + install -p $(externals_src)/iem/iem_ambi/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEM_AMBI_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(IEM_AMBI_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_ambi/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEM_AMBI_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(IEM_AMBI_NAME) +# install -p $(externals_src)/iem/iem_ambi/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(IEM_AMBI_NAME) + +iem_ambi_clean: + -rm -f -- $(IEM_AMBI_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(IEM_AMBI_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/iem/iem_ambi/*/*.bak + -rm -f -- $(externals_src)/iem/iem_ambi/*/*.*~ + + + +#------------------------------------------------------------------------------# +# IEM_BIN_AMBI +IEM_BIN_AMBI_NAME=iem_bin_ambi +# exclude the files for the single-file library format +IEM_BIN_AMBI_OBJECTS := $(wildcard $(externals_src)/iem/iem_bin_ambi/src/[a-hj-z]*.c) +iem_bin_ambi: $(IEM_BIN_AMBI_OBJECTS:.c=.$(EXTENSION)) + +iem_bin_ambi_install: iem_bin_ambi + install -d $(DESTDIR)$(objectsdir)/$(IEM_BIN_AMBI_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEM_BIN_AMBI_NAME) \ + --author "IEM/KUG, Graz, Austria" \ + --description "calculate the product of an ambisonic decoder-matrix and the binaural HRIR's (in frequency and in time domain)" \ + --license "GNU GPL" \ + --version "" + install -p $(IEM_BIN_AMBI_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEM_BIN_AMBI_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEM_BIN_AMBI_NAME) + install -p $(externals_src)/iem/iem_bin_ambi/*.pd \ + $(DESTDIR)$(helpdir)/$(IEM_BIN_AMBI_NAME) + install -p $(externals_src)/iem/iem_bin_ambi/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEM_BIN_AMBI_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(IEM_BIN_AMBI_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_bin_ambi/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEM_BIN_AMBI_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(IEM_BIN_AMBI_NAME) +# install -p $(externals_src)/iem/iem_bin_ambi/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(IEM_BIN_AMBI_NAME) + +iem_bin_ambi_clean: + -rm -f -- $(IEM_BIN_AMBI_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(IEM_BIN_AMBI_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/iem/iem_bin_ambi/*/*.bak + -rm -f -- $(externals_src)/iem/iem_bin_ambi/*/*.*~ + + + +#------------------------------------------------------------------------------# +# IEM16 +# more externals in one file - so a little bit complicated ... ;) +IEM16_NAME=iem16 +IEM16_DIR := $(externals_src)/iem16/src +IEM16_SRC := $(wildcard $(IEM16_DIR)/*.c) + +$(IEM16_DIR)/aclocal.m4: $(IEM16_DIR)/acinclude.m4 + cd $(IEM16_DIR) && aclocal + +$(IEM16_DIR)/configure: $(IEM16_DIR)/configure.ac $(IEM16_DIR)/aclocal.m4 + cd $(IEM16_DIR) && autoconf + +$(IEM16_DIR)/Make.config: $(IEM16_DIR)/Make.config.in \ +$(IEM16_DIR)/configure + cd $(IEM16_DIR) && ./configure --disable-library \ + --with-pd=$(pd_src) + +iem16: $(IEM16_DIR)/Make.config + $(MAKE) -C $(IEM16_DIR) + + +iem16_install: iem16 + install -d $(DESTDIR)$(objectsdir)/$(IEM16_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEM16_NAME) \ + --author "IOhannes m zmoelnig" \ + --description "16bit table, array objects for low memory usage" \ + --license "GNU GPL" \ + --version "0.1" + install -p $(IEM16_DIR)/*.$(EXTENSION) $(DESTDIR)$(objectsdir)/$(IEM16_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEM16_NAME) + install -p $(externals_src)/iem16/help/*.pd \ + $(DESTDIR)$(helpdir)/$(IEM16_NAME) + install -p $(externals_src)/iem16/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEM16_NAME) + +iem16_clean: + -$(MAKE) -C $(IEM16_DIR) clean + -rm -f -- $(IEM16_DIR)/*.$(EXTENSION) + -rm -f -- $(IEM16_DIR)/*.d + -rm -rf -- $(IEM16_DIR)/autom4ate + -rm -rf -- $(IEM16_DIR)/conf[0-9][0-9][0-9]* + -rm -f -- $(IEM16_DIR)/configure + -rm -f -- $(IEM16_DIR)/Make.config + -rm -f -- $(IEM16_DIR)/*.o + -rm -f -- $(IEM16_DIR)/*.bak + -rm -f -- $(IEM16_DIR)/*.*~ + +#------------------------------------------------------------------------------# +# IEMGUTS +IEMGUTS_NAME=iemguts +IEMGUTS_OBJECTS := $(wildcard $(externals_src)/iem/iemguts/src/*.c) +iemguts: $(IEMGUTS_OBJECTS:.c=.$(EXTENSION)) + + +iemguts_install: iemguts + install -d $(DESTDIR)$(objectsdir)/$(IEMGUTS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMGUTS_NAME) \ + --author "IOhannes m zmoelnig" \ + --description "IEMguts is a collection of objects that deal with the infrastructure to build better abstractions" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMGUTS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMGUTS_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMGUTS_NAME) + install -p $(externals_src)/iem/iemguts/help/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMGUTS_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iemguts/README.txt \ + $(DESTDIR)$(readmesdir)/$(IEMGUTS_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(IEMGUTS_NAME) + install -p $(externals_src)/iem/iemguts/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(IEMGUTS_NAME) + +iemguts_clean: + -rm -f -- $(IEMGUTS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(IEMGUTS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/iem/iemguts/*.bak + -rm -f -- $(externals_src)/iem/iemguts/*.*~ + + + +#------------------------------------------------------------------------------# +# IEMLIB +IEMLIB_NAME=iemlib +# omit the lib files and iem_mp3 (for patent reasons :( ) +IEMLIB_SRC := $(wildcard $(externals_src)/iemlib/iemlib1/src/*[^1].c) $(wildcard $(externals_src)/iemlib/iemlib2/src/*[^2].c) $(wildcard $(externals_src)/iemlib/iem_t3_lib/src/t3_*.c) $(wildcard $(externals_src)/iemlib/alias/*.c) + +IEMLIB_OBJECTS := $(IEMLIB_SRC:.c=.o) +$(IEMLIB_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) -O2 -funroll-loops -fomit-frame-pointer -o "$*.o" -c "$*.c" + +iemlib: $(IEMLIB_SRC:.c=.$(EXTENSION)) + +iemlib_install: iemlib + install -d $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMLIB_NAME) \ + --description "a collection of objects written at IEM/KUG" \ + --license "GNU GPL" + install -p $(IEMLIB_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/iemabs/*.pd $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/alias/*.pd $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/*/*-help.pd $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/*/*-help.pd $(DESTDIR)$(helpdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/*/*.mp3 $(DESTDIR)$(helpdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/*/*.wav $(DESTDIR)$(helpdir)/$(IEMLIB_NAME) + install -d $(DESTDIR)$(examplesdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/examples/*.* \ + $(DESTDIR)$(examplesdir)/$(IEMLIB_NAME) + install -d $(DESTDIR)$(manualsdir)/$(IEMLIB_NAME) + install -p $(externals_src)/iemlib/*.pdf $(externals_src)/iemlib/*.txt \ + $(externals_src)/iemlib/iemabs/*.txt \ + $(DESTDIR)$(manualsdir)/$(IEMLIB_NAME) +# kludge to get a single working output~ straight in 'extra' + -rm -f -- $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME)/output~.pd + + +iemlib_clean: + -rm -f -- $(IEMLIB_OBJECTS:.c=.$(EXTENSION)) + -rmdir -- $(DESTDIR)$(objectsdir)/$(IEMLIB_NAME) + -rm -f -- $(DESTDIR)$(helpdir)/$(IEMLIB_NAME)/*.* + -rmdir -- $(DESTDIR)$(helpdir)/$(IEMLIB_NAME) + -rm -f -- $(DESTDIR)$(examplesdir)/$(IEMLIB_NAME)/*.* + -rmdir -- $(DESTDIR)$(examplesdir)/$(IEMLIB_NAME) + -rm -f -- $(DESTDIR)$(manualsdir)/$(IEMLIB_NAME)/*.* + -rmdir -- $(DESTDIR)$(manualsdir)/$(IEMLIB_NAME) + + + +#------------------------------------------------------------------------------# +# IEMMATRIX +## oh this is all sh!t: please use iemmatrix's build-system instead +IEMMATRIX_NAME=iemmatrix +IEMMATRIX_ROOT := $(externals_src)/iem/iemmatrix +IEMMATRIX_SRC := $(wildcard $(IEMMATRIX_ROOT)/src/m[at]*.c) +IEMMATRIX_ALIAS := $(wildcard $(IEMMATRIX_ROOT)/alias/*.c) +IEMMATRIX_OBJ := $(IEMMATRIX_SRC:.c=.o) $(IEMMATRIX_ALIAS:.c=.o) +IEMMATRIX_SHARED := $(wildcard $(IEMMATRIX_ROOT)/src/iemmatrix_binops.c) \ + $(wildcard $(IEMMATRIX_ROOT)/src/iemmatrix_utility.c) + +iemmatrix: $(IEMMATRIX_OBJ:.o=.$(EXTENSION)) + +$(IEMMATRIX_OBJ:.o=.$(EXTENSION)) : %.$(EXTENSION) : $(IEMMATRIX_OBJ) $(IEMMATRIX_SHARED:.c=.o) + $(CC) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(IEMMATRIX_SHARED:.c=.o) $(LIBS) + $(STRIP) $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + #rm -f -- "$*.o" + +$(IEMMATRIX_OBJ) $(IEMMATRIX_SHARED:.c=.o) : %.o : %.c + $(CC) $(OPT_CFLAGS) $(CFLAGS) -o "$*.o" -c "$*.c" -I$(IEMMATRIX_ROOT)/src + +iemmatrix_install: iemmatrix + install -d $(DESTDIR)$(objectsdir)/$(IEMMATRIX_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMMATRIX_NAME) \ + --author "IOhannes m zmoelnig (zmoelnig AT iem DOT at), thomas musil (musil AT iem DOT at), franz zotter (zotter AT iem DOT at)" \ + --description "objects for matrix operations and math" \ + --license "GNU GPL" \ + --version "$(IEMMATRIX_VERSION)" + install -p $(IEMMATRIX_OBJ:.o=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMMATRIX_NAME) + install -p $(shell ls -1 $(externals_src)/iem/iemmatrix/abs/*.* | \ + grep -v '\-help.pd') $(DESTDIR)$(objectsdir)/$(IEMMATRIX_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMMATRIX_NAME) + install -p $(externals_src)/iem/iemmatrix/doc/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMMATRIX_NAME) + install -p $(externals_src)/iem/iemmatrix/abs/*-help.pd \ + $(DESTDIR)$(helpdir)/$(IEMMATRIX_NAME) + install -p $(externals_src)/iem/iemmatrix/abs/*-help.pd \ + $(DESTDIR)$(objectsdir)/$(IEMMATRIX_NAME) + install -d $(DESTDIR)$(manualsdir)/$(IEMMATRIX_NAME) + install -p $(externals_src)/iem/iemmatrix/*.txt \ + $(DESTDIR)$(manualsdir)/$(IEMMATRIX_NAME) + +iemmatrix_clean: + -rm -f -- $(IEMMATRIX_OBJ:.o=.$(EXTENSION)) + -rm -f -- $(externals_src)/iem/iemmatrix/src/*.o + -rm -f -- $(externals_src)/iem/iemmatrix/alias/*.o + -rm -f -- $(externals_src)/iem/iemmatrix/src/*.bak + -rm -f -- $(externals_src)/iem/iemmatrix/src/*.*~ + + + +#------------------------------------------------------------------------------# +# IEM_MATRIX +IEM_MATRIX_NAME=iem_matrix +IEM_MATRIX_SRC := $(wildcard $(externals_src)/iem/iem_matrix/src/matrix_?????*.c) +IEM_MATRIX_OBJ := $(IEM_MATRIX_SRC:.c=.o) + +iem_matrix: $(IEM_MATRIX_OBJ:.o=.$(EXTENSION)) + +iem_matrix_install: iem_matrix + install -d $(DESTDIR)$(objectsdir)/$(IEM_MATRIX_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEM_MATRIX_NAME) \ + --author "Thomas Musil" \ + --description "audio matrix objects" \ + --license "GNU GPL" \ + --version "" + install -p $(IEM_MATRIX_OBJ:.o=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEM_MATRIX_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEM_MATRIX_NAME) + install -p $(externals_src)/iem/iem_matrix/*.pd \ + $(DESTDIR)$(helpdir)/$(IEM_MATRIX_NAME) + install -p $(externals_src)/iem/iem_matrix/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEM_MATRIX_NAME) + +iem_matrix_clean: + -rm -f -- $(IEM_MATRIX_OBJ:.o=.$(EXTENSION)) + -rm -f -- $(externals_src)/iem/iem_matrix/src/*.o + -rm -f -- $(externals_src)/iem/iem_matrix/src/*.bak + -rm -f -- $(externals_src)/iem/iem_matrix/src/*.*~ + + + +#------------------------------------------------------------------------------# +# JASCH_LIB +JASCH_LIB_NAME=jasch_lib +JASCH_LIB_OBJECTS := $(wildcard $(externals_src)/jasch_lib/*/*.c) +jasch_lib: $(JASCH_LIB_OBJECTS:.c=.$(EXTENSION)) + +jasch_lib_install: jasch_lib + install -d $(DESTDIR)$(objectsdir)/$(JASCH_LIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(JASCH_LIB_NAME) \ + --author "Jasch" \ + --license "GNU GPLv2" \ + --version "" + install -p $(JASCH_LIB_OBJECTS:.c=.$(EXTENSION)) \ + $(DESTDIR)$(objectsdir)/$(JASCH_LIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(JASCH_LIB_NAME) + install -p $(externals_src)/jasch_lib/*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(JASCH_LIB_NAME) + install -p $(externals_src)/jasch_lib/*/*-help.pd \ + $(DESTDIR)$(objectsdir)/$(JASCH_LIB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(JASCH_LIB_NAME) +# install -p $(externals_src)/jasch_lib/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(JASCH_LIB_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/jasch_lib/README \ +# $(DESTDIR)$(readmesdir)/$(JASCH_LIB_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(JASCH_LIB_NAME) +# install -p $(externals_src)/jasch_lib/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(JASCH_LIB_NAME) + +jasch_lib_clean: + -rm -f -- $(JASCH_LIB_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(JASCH_LIB_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/jasch_lib/*/*.bak + -rm -f -- $(externals_src)/jasch_lib/*/*.*~ + + + +#------------------------------------------------------------------------------# +# LOADERS +LOADERS_NAME= +LOADERS_OBJECTS := $(wildcard $(externals_src)/loaders/*.c) \ + $(externals_src)/loaders/hexloader/hexloader.c +loaders: $(LOADERS_OBJECTS:.c=.$(EXTENSION)) + echo $(LOADERS_OBJECTS) +loaders_install: loaders + install -d $(DESTDIR)$(objectsdir)/$(LOADERS_NAME) + install -p $(LOADERS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LOADERS_NAME) + install -d $(DESTDIR)$(helpdir)/$(LOADERS_NAME) +# install -p $(wildcard $(externals_src)/loaders/help/*.pd) \ +# $(DESTDIR)$(helpdir)/$(LOADERS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(LOADERS_NAME) +# install -p $(externals_src)/loaders/README.txt $(DESTDIR)$(manualsdir)/$(LOADERS_NAME) + +loaders_clean: + -rm -f -- $(LOADERS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/loaders/*.o + -rm -f -- $(externals_src)/loaders/*.bak + -rm -f -- $(externals_src)/loaders/*.*~ + + +#------------------------------------------------------------------------------# +# MAPPING +MAPPING_NAME=mapping +MAPPING_OBJECTS := $(wildcard $(externals_src)/mapping/src/*.c) +mapping: $(MAPPING_OBJECTS:.c=.$(EXTENSION)) + +mapping_install: mapping + install -d $(DESTDIR)$(objectsdir)/$(MAPPING_NAME) +# no compiled objects yet... +# install -p $(MAPPING_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MAPPING_NAME) + install -p $(externals_src)/mapping/*.pd $(DESTDIR)$(objectsdir)/$(MAPPING_NAME) + install -d $(DESTDIR)$(helpdir)/$(MAPPING_NAME) + install -p $(externals_src)/mapping/*-help.pd \ + $(DESTDIR)$(helpdir)/$(MAPPING_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MAPPING_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/mapping/README.txt \ + $(DESTDIR)$(readmesdir)/$(MAPPING_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(MAPPING_NAME) +# install -p $(externals_src)/mapping/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(MAPPING_NAME) + +mapping_clean: + -rm -f -- $(externals_src)/mapping/*.$(EXTENSION) + -rm -f -- $(externals_src)/mapping/src/*.o + -rm -f -- $(externals_src)/mapping/*.bak + -rm -f -- $(externals_src)/mapping/*.*~ + + +#------------------------------------------------------------------------------# +# MARKEX +MARKEX_NAME=markex +MARKEX_OBJECTS := $(wildcard $(externals_src)/markex/[a-z]*.c) +markex: $(MARKEX_OBJECTS:.c=.$(EXTENSION)) + +markex_install: markex + install -d $(DESTDIR)$(objectsdir)/$(MARKEX_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MARKEX_NAME) \ + --author "Mark Danks" \ + --license "GNU GPL" + install -p $(MARKEX_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MARKEX_NAME) + install -d $(DESTDIR)$(helpdir)/$(MARKEX_NAME) + install -p $(wildcard $(externals_src)/markex/*.pd) \ + $(DESTDIR)$(helpdir)/$(MARKEX_NAME) + install -p $(wildcard $(externals_src)/markex/*.pd) \ + $(DESTDIR)$(objectsdir)/$(MARKEX_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MARKEX_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/markex/README \ + $(DESTDIR)$(readmesdir)/$(MARKEX_NAME).txt + +markex_clean: + -rm -f -- $(externals_src)/markex/*.$(EXTENSION) + -rm -f -- $(externals_src)/markex/*.o + -rm -f -- $(externals_src)/markex/*.bak + -rm -f -- $(externals_src)/markex/*.*~ + + +#------------------------------------------------------------------------------# +# MAXLIB +MAXLIB_NAME=maxlib +MAXLIB_OBJECTS := $(wildcard $(externals_src)/maxlib/src/*.c) +maxlib: $(MAXLIB_OBJECTS:.c=.$(EXTENSION)) + +maxlib_install: maxlib + install -d $(DESTDIR)$(objectsdir)/$(MAXLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MAXLIB_NAME) \ + --author "Olaf Matthes <olaf.matthes@gmx.de>" \ + --license "GNU GPL" \ + --version "1.5.2-cvs" + install -p $(MAXLIB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MAXLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(MAXLIB_NAME) + install -p $(wildcard $(externals_src)/maxlib/help/*.pd) \ + $(DESTDIR)$(helpdir)/$(MAXLIB_NAME) + install -p $(wildcard $(externals_src)/maxlib/help/*.pd) \ + $(DESTDIR)$(objectsdir)/$(MAXLIB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MAXLIB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/maxlib/README \ + $(DESTDIR)$(readmesdir)/$(MAXLIB_NAME).txt + +maxlib_clean: + -rm -f -- $(externals_src)/maxlib/src/*.$(EXTENSION) + -rm -f -- $(externals_src)/maxlib/src/*.o + -rm -f -- $(externals_src)/maxlib/*/*.bak + -rm -f -- $(externals_src)/maxlib/*/*.*~ + -rm -f -- $(externals_src)/maxlib/*.*~ + + +#------------------------------------------------------------------------------# +# MJLIB +MJLIB_NAME=mjlib +# exclude the library file mjLib.c +MJLIB_OBJECTS := $(wildcard $(externals_src)/mjlib/[a-z]?[a-z]*.c) +mjlib: $(MJLIB_OBJECTS:.c=.$(EXTENSION)) + +mjlib_install: mjlib + install -d $(DESTDIR)$(objectsdir)/$(MJLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MJLIB_NAME) \ + --author "mark williamson <mark@junklight.com>" \ + --license "GNU GPL" \ + --version "0.1" + install -p $(MJLIB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MJLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(MJLIB_NAME) + install -p $(wildcard $(externals_src)/mjlib/doc/*.pd) \ + $(DESTDIR)$(helpdir)/$(MJLIB_NAME) + install -p $(wildcard $(externals_src)/mjlib/doc/*.pd) \ + $(DESTDIR)$(objectsdir)/$(MJLIB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MJLIB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/mjlib/readme.txt \ + $(DESTDIR)$(readmesdir)/$(MJLIB_NAME).txt + +mjlib_clean: + -rm -f -- $(externals_src)/mjlib/*.$(EXTENSION) + -rm -f -- $(externals_src)/mjlib/*.o + -rm -f -- $(externals_src)/mjlib/*.bak + -rm -f -- $(externals_src)/mjlib/*.*~ + + +#------------------------------------------------------------------------------# +# MOOCOW +MOOCOW_NAME=moocow +#MOOCOW_OBJECTS := $(shell cat $(externals_src)/moocow/extended/objects) +MOOCOW_DIR=$(externals_src)/moocow/extended +MOOCOW_BUILD=$(MOOCOW_DIR)/build.moo + +##-- pass some variables on to sub-make +## + we should probably just use make's "export" for this, +## maybe even exporting all variables by default... +MOOCOW_MAKEFLAGS = \ + CFLAGS="$(CFLAGS)" \ + pd_src="$(pd_src)" + +$(externals_src)/moocow/extended/build.stamp: + $(MAKE) -C $(MOOCOW_DIR) $(MOOCOW_MAKEFLAGS) build.stamp \ + || echo "moocow: WARNING: build failed" + +moocow: $(MOOCOW_DIR)/build.stamp + +moocow_install: + install -d $(DESTDIR)$(objectsdir)/$(MOOCOW_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MOOCOW_NAME) \ + --author "Bryan Jurish <moocow@bbaw.de>" \ + --description "moocow's externals" \ + --license "GNU GPL" \ + --version "CVS.`date +%Y-%m-%d`" + install -p $(MOOCOW_BUILD)/ext*/*.$(EXTENSION) \ + $(DESTDIR)$(objectsdir)/$(MOOCOW_NAME) \ + || echo 'moocow_install: WARNING: no library externals to install!' + install -p $(MOOCOW_BUILD)/ext*/*.pd \ + $(DESTDIR)$(objectsdir)/$(MOOCOW_NAME) \ + || echo 'moocow_install: WARNING: no library patches to install!' + install -d $(DESTDIR)$(helpdir)/$(MOOCOW_NAME) + install -p $(MOOCOW_BUILD)/doc/5.reference/*.pd \ + $(DESTDIR)$(objectsdir)/$(MOOCOW_NAME) \ + install -p $(MOOCOW_BUILD)/doc/5.reference/*.pd \ + $(DESTDIR)$(helpdir)/$(MOOCOW_NAME) \ + || echo 'moocow_install: WARNING: no help patches to install!' +# install -d $(DESTDIR)$(manualsdir)/$(MOOCOW_NAME) +# install -p $(externals_src)/moocow/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(MOOCOW_NAME) \ +# || echo 'moocow_install: WARNING: no manuals to install!' + install -d $(DESTDIR)$(readmesdir) + install -p $(MOOCOW_DIR)/README.txt \ + $(DESTDIR)$(readmesdir)/$(MOOCOW_NAME).txt \ + || echo 'moocow_install: WARNING: no README to install!' +# install -d $(DESTDIR)$(examplesdir)/$(MOOCOW_NAME) +# install -p $(MOOCOW_BUILD)/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(MOOCOW_NAME) \ +# || echo "moocow_install: WARNING: no examples patches to install!" + +moocow_clean: + $(MAKE) -C $(externals_src)/moocow/extended distclean + -rm -f -- $(MOOCOW_DIR)/*.bak + -rm -f -- $(MOOCOW_DIR)/*.*~ + + +#------------------------------------------------------------------------------# +# MOONLIB +MOONLIB_NAME=moonlib +MOONLIB_OBJECTS := $(wildcard $(externals_src)/moonlib/*.c) +moonlib: $(MOONLIB_OBJECTS:.c=.$(EXTENSION)) + +moonlib_install: moonlib + install -d $(DESTDIR)$(objectsdir)/$(MOONLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MOONLIB_NAME) \ + --author "Antoine Rousseau" \ + --version "0.2" + install -p $(MOONLIB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MOONLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(MOONLIB_NAME) + install -p $(externals_src)/moonlib/help/*.pd $(DESTDIR)$(objectsdir)/$(MOONLIB_NAME) + install -p $(externals_src)/moonlib/help/*.pd $(DESTDIR)$(helpdir)/$(MOONLIB_NAME) + install -p $(externals_src)/moonlib/help/*.gif $(DESTDIR)$(helpdir)/$(MOONLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(MOONLIB_NAME)/d + install -p $(externals_src)/moonlib/help/d/*.gif $(DESTDIR)$(helpdir)/$(MOONLIB_NAME)/d +# install -d $(DESTDIR)$(manualsdir)/$(MOONLIB_NAME) +# install -p $(externals_src)/moonlib/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(MOONLIB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/moonlib/README.txt \ + $(DESTDIR)$(readmesdir)/$(MOONLIB_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(MOONLIB_NAME) +# install -p $(externals_src)/moonlib/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(MOONLIB_NAME) + +moonlib_clean: + -rm -f -- $(MOONLIB_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(MOONLIB_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/moonlib/*.bak + -rm -f -- $(externals_src)/moonlib/*.*~ + + + +#------------------------------------------------------------------------------# +# MOTEX +motex: + make -C $(externals_src)/motex + +motex_install: + make -C $(externals_src)/motex objectsdir="$(objectsdir)" install + +motex_clean: + make -C $(externals_src)/motex clean + + + + +#------------------------------------------------------------------------------# +# MRPEACH +MRPEACH_NAME=mrpeach +MRPEACH_OBJECTS := $(wildcard $(externals_src)/mrpeach/*/*.c) +mrpeach: $(MRPEACH_OBJECTS:.c=.$(EXTENSION)) + +mrpeach_install: mrpeach + install -d $(DESTDIR)$(objectsdir)/$(MRPEACH_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MRPEACH_NAME) \ + --author "Martin Peach <martin.peach@sympatico.ca>" \ + --description "" \ + --license "GNU GPL" \ + --version "0.1" + install -p $(MRPEACH_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MRPEACH_NAME) + install -d $(DESTDIR)$(helpdir)/$(MRPEACH_NAME) + install -p $(externals_src)/mrpeach/*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(MRPEACH_NAME) + install -p $(externals_src)/mrpeach/*/*-help.pd \ + $(DESTDIR)$(objectsdir)/$(MRPEACH_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MRPEACH_NAME) +# install -p $(externals_src)/mrpeach/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(MRPEACH_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/mrpeach/README \ +# $(DESTDIR)$(readmesdir)/$(MRPEACH_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(MRPEACH_NAME) +# install -p $(externals_src)/mrpeach/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(MRPEACH_NAME) + +mrpeach_clean: + -rm -f -- $(MRPEACH_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(MRPEACH_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/mrpeach/*.bak + -rm -f -- $(externals_src)/mrpeach/*.*~ + + + + +#------------------------------------------------------------------------------# +# MSD +MSD_NAME=msd +MSD_OBJECTS := $(wildcard $(externals_src)/nusmuk/msd*/*.cpp) +#msd: $(MSD_OBJECTS:.c=.$(EXTENSION)) +msd: + +msd_install: msd + install -d $(DESTDIR)$(objectsdir)/$(MSD_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(MSD_NAME) \ + --author "Nicolas Montgermont, Cyrille Henry, and Frank Barknecht" \ + --description "Mass Spring Damper modeling for Pd" \ + --license "GNU LGPL" \ + --version "0.07" +# install -p $(MSD_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(MSD_NAME) + install -d $(DESTDIR)$(helpdir)/$(MSD_NAME) + install -p $(externals_src)/nusmuk/msd*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(MSD_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(MSD_NAME) +# install -p $(externals_src)/msd/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(MSD_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/nusmuk/README.txt \ + $(DESTDIR)$(readmesdir)/$(MSD_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(MSD_NAME) + install -d $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd + install -p $(externals_src)/nusmuk/msd/*.pd \ + $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd + install -d $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd2D + install -p $(externals_src)/nusmuk/msd2D/*.pd \ + $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd2D + install -d $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd3D + install -p $(externals_src)/nusmuk/msd3D/*.pd \ + $(DESTDIR)$(examplesdir)/$(MSD_NAME)/msd3D + install -d $(DESTDIR)$(examplesdir)/$(MSD_NAME)/editor + install -p $(externals_src)/nusmuk/editor/*.* \ + $(DESTDIR)$(examplesdir)/$(MSD_NAME)/editor + install -p $(externals_src)/nusmuk/editor/README \ + $(DESTDIR)$(examplesdir)/$(MSD_NAME)/editor/README.txt + +msd_clean: + -rm -f -- $(MSD_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(MSD_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/msd/*.bak + -rm -f -- $(externals_src)/msd/*.*~ + + + +#---------------------------------------------------------------------------- +# OSCx +OSCX_NAME=oscx +$(externals_src)/OSCx/configure: $(externals_src)/OSCx/configure.ac + cd $(externals_src)/OSCx && autoconf + +$(externals_src)/OSCx/Makefile: $(externals_src)/OSCx/Makefile.in + cd $(externals_src)/OSCx && ./configure +$(externals_src)/OSCx/libOSC/Makefile: $(externals_src)/OSCx/libOSC/Makefile.in + cd $(externals_src)/OSCx && ./configure +$(externals_src)/OSCx/src/Makefile: $(externals_src)/OSCx/src/Makefile.in + cd $(externals_src)/OSCx && ./configure + +$(externals_src)/OSCx/src/OSCroute.$(EXTENSION): $(externals_src)/OSCx/configure \ +$(externals_src)/OSCx/Makefile + $(MAKE) -C $(externals_src)/OSCx +$(externals_src)/OSCx/src/dumpOSC.$(EXTENSION): $(externals_src)/OSCx/configure \ +$(externals_src)/OSCx/Makefile + $(MAKE) -C $(externals_src)/OSCx +$(externals_src)/OSCx/src/sendOSC.$(EXTENSION): $(externals_src)/OSCx/configure \ +$(externals_src)/OSCx/Makefile + $(MAKE) -C $(externals_src)/OSCx + +oscx: $(externals_src)/OSCx/src/OSCroute.$(EXTENSION) \ +$(externals_src)/OSCx/src/dumpOSC.$(EXTENSION) \ +$(externals_src)/OSCx/src/sendOSC.$(EXTENSION) + +oscx_install: oscx + install -d $(DESTDIR)$(objectsdir)/$(OSCX_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(OSCX_NAME) \ + --author "<jdl@xdv.org>" \ + --license "BSD" \ + --description "objects for working with OpenSoundControl" + install -p $(externals_src)/OSCx/src/*.$(EXTENSION) $(DESTDIR)$(objectsdir)/$(OSCX_NAME) + install -d $(DESTDIR)$(helpdir)/$(OSCX_NAME) + install -p $(externals_src)/OSCx/doc/*.* $(DESTDIR)$(helpdir)/$(OSCX_NAME) + + +oscx_clean: + -$(MAKE) -C $(externals_src)/OSCx $(DEST_PATHS) clean + -$(MAKE) -C $(externals_src)/OSCx CC=gcc clean + -rm $(externals_src)/OSCx/Makefile + + + + +#------------------------------------------------------------------------------# +# PAN +PAN_NAME=pan +PAN_OBJECTS := $(wildcard $(externals_src)/hcs/pan/*.c) +pan: $(PAN_OBJECTS:.c=.$(EXTENSION)) + +pan_install: pan + install -d $(DESTDIR)$(objectsdir)/$(PAN_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PAN_NAME) \ + --author "Hans-Christoph Steiner <hans@at.or.at>" \ + --description "A library of panning algoritms" \ + --license "GNU GPL" \ + --version "" +# everything is .pd, nothing to compile (yet?) +# install -p $(PAN_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(PAN_NAME) + install -p $(wildcard $(externals_src)/hcs/pan/*.pd) \ + $(DESTDIR)$(objectsdir)/$(PAN_NAME) + install -d $(DESTDIR)$(helpdir)/$(PAN_NAME) + install -p $(externals_src)/hcs/pan/help/*.pd \ + $(DESTDIR)$(helpdir)/$(PAN_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(PAN_NAME) +# install -p $(externals_src)/hcs/pan/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(PAN_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/hcs/pan/README \ +# $(DESTDIR)$(readmesdir)/$(PAN_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(PAN_NAME) +# install -p $(externals_src)/hcs/pan/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(PAN_NAME) + + +pan_clean: + -rm -f -- $(PAN_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(PAN_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/hcs/pan/*.bak + -rm -f -- $(externals_src)/hcs/pan/*.*~ + + + + +#------------------------------------------------------------------------------# +# PDDP +PDDP_NAME=pddp +pddp: + + +pddp_install: pddp + install -d $(DESTDIR)$(objectsdir)/$(PDDP_NAME) +# $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDDP_NAME) \ +# --author "PDDP" \ +# --license "BSD" \ +# --description "objects for working with Tcl and Pd's Tk GUI" +# pddp is compiled straight into $(OUT_DIR) + cd $(externals_src)/miXed/pddp && $(MAKE) \ + OUT_DIR=$(DESTDIR)$(objectsdir)/$(PDDP_NAME) + install -d $(DESTDIR)$(objectsdir)/$(PDDP_NAME)/pddp + install -p $(externals_src)/miXed/bin/pddp/*.tcl \ + $(DESTDIR)$(objectsdir)/$(PDDP_NAME)/pddp +# install -d $(DESTDIR)$(helpdir)/$(PDDP_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(PDDP_NAME) + install -d $(DESTDIR)$(examplesdir)/$(PDDP_NAME) + install -p $(externals_src)/miXed/test/pddp/*.* \ + $(DESTDIR)$(examplesdir)/$(PDDP_NAME) + + +pddp_clean: + -$(MAKE) -C $(externals_src)/mixed/pddp $(DEST_PATHS) clean + + + +#------------------------------------------------------------------------------# +# PDLUA +PDLUA_NAME=pdlua +PDLUA_OBJECTS := $(externals_src)/loaders/pdlua/src/lua.c +pdlua: $(PDLUA_OBJECTS:.c=.$(EXTENSION)) + +pdlua_install: pdlua + install -d $(DESTDIR)$(objectsdir) + install -p $(PDLUA_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir) + install -p $(externals_src)/loaders/pdlua/src/pd.lua $(DESTDIR)$(objectsdir) + install -d $(DESTDIR)$(manualsdir)/$(PDLUA_NAME) + install -p $(externals_src)/loaders/pdlua/doc/*.txt \ + $(DESTDIR)$(manualsdir)/$(PDLUA_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/loaders/pdlua/README \ + $(DESTDIR)$(readmesdir)/$(PDLUA_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(PDLUA_NAME) + install -p $(externals_src)/loaders/pdlua/examples/*.* \ + $(DESTDIR)$(examplesdir)/$(PDLUA_NAME) + +pdlua_clean: + -rm -f -- $(PDLUA_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(PDLUA_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/loaders/pdlua/*.bak + -rm -f -- $(externals_src)/loaders/pdlua/*.*~ + + +#------------------------------------------------------------------------------# +# PDOGG +PDOGG_NAME=pdogg +PDOGG_OBJECTS := $(wildcard $(externals_src)/pdogg/*/*.c) +pdogg: $(PDOGG_OBJECTS:.c=.$(EXTENSION)) + +pdogg_install: pdogg + install -d $(DESTDIR)$(objectsdir)/$(PDOGG_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDOGG_NAME) \ + --author "Olaf Matthes" \ + --description "objects for reading, writing, and streaming ogg" \ + --license "LGPL" \ + --version "0.2" + install -p $(PDOGG_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(PDOGG_NAME) + install -d $(DESTDIR)$(helpdir)/$(PDOGG_NAME) + install -p $(externals_src)/pdogg/*/*.pd \ + $(DESTDIR)$(helpdir)/$(PDOGG_NAME) + install -p $(externals_src)/pdogg/*/*.pd \ + $(DESTDIR)$(objectsdir)/$(PDOGG_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(PDOGG_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/pdogg/readme \ + $(DESTDIR)$(readmesdir)/$(PDOGG_NAME).txt + +pdogg_clean: + -rm -f -- $(externals_src)/pdogg/*/*.$(EXTENSION) + -rm -f -- $(externals_src)/pdogg/*/*.o + -rm -f -- $(externals_src)/pdogg/*/*.bak + -rm -f -- $(externals_src)/pdogg/*/*.*~ + -rm -f -- $(externals_src)/pdogg/*.*~ + + + +#------------------------------------------------------------------------------# +# PDP +ifeq ($(ARCH),i386) + PDP_OPTIONS = --enable-quicktime --enable-mmx +else + PDP_OPTIONS = --enable-quicktime +endif + +PDP_NAME=pdp +$(externals_src)/pdp/configure: $(externals_src)/pdp/configure.ac + cd $(externals_src)/pdp && autoconf + +$(externals_src)/pdp/Makefile.config: $(externals_src)/pdp/configure $(externals_src)/pdp/Makefile.config.in + cd $(externals_src)/pdp && ./configure PD_CPPFLAGS="-I$(pd_src)/src" \ + $(PDP_OPTIONS) + +$(externals_src)/pdp/pdp.$(EXTENSION): $(externals_src)/pdp/Makefile.config + $(MAKE) -C $(externals_src)/pdp PD_EXECUTABLE="$(pd_src)/bin/pd" + +pdp: $(externals_src)/pdp/pdp.$(EXTENSION) + +pdp_install: pdp + install -d $(DESTDIR)$(objectsdir)/$(PDP_NAME) +# $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDP_NAME) \ +# --author "Tom Schouten" \ +# --description "Pure Data Packet" \ +# --license "GNU GPL" + install -d $(DESTDIR)$(objectsdir) + install -p $(externals_src)/pdp/*.$(EXTENSION) $(DESTDIR)$(objectsdir)/$(PDP_NAME) +# install -p $(externals_src)/pdp/abstractions/*.pd $(DESTDIR)$(objectsdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/abstractions/*.pd $(DESTDIR)$(objectsdir) + install -d $(DESTDIR)$(helpdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/doc/objects/*.* $(DESTDIR)$(helpdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/doc/objects/*.* $(DESTDIR)$(objectsdir)/$(PDP_NAME) + install -d $(DESTDIR)$(manualsdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/doc/reference.txt $(DESTDIR)$(manualsdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/doc/introduction/*.* \ + $(DESTDIR)$(manualsdir)/$(PDP_NAME) + install -d $(DESTDIR)$(examplesdir)/$(PDP_NAME) + install -p $(externals_src)/pdp/doc/examples/*.* \ + $(DESTDIR)$(examplesdir)/$(PDP_NAME) + +pdp_clean: + -rm -f -- $(externals_src)/pdp/*.$(EXTENSION) + -find $(externals_src)/pdp -name '*.o' | xargs rm -f -- + -find $(externals_src)/pdp -name '*.bak' | xargs rm -f -- + -rm -f -- $(externals_src)/pdp/Makefile.config + -rm -f -- $(externals_src)/pdp/configure + + +#------------------------------------------------------------------------------# +# PDP_OPENGL +PDP_OPENGL_NAME=3dp +PDP_OPENGL_BINARY := $(externals_src)/pdp/opengl/pdp_opengl.$(EXTENSION) +$(PDP_OPENGL_BINARY): $(externals_src)/pdp/Makefile.config + make -C $(externals_src)/pdp/opengl + +pdp_opengl: $(PDP_OPENGL_BINARY) + echo $(PDP_OPENGL_BINARY) + +pdp_opengl_install: pdp_opengl + install -d $(DESTDIR)$(objectsdir)/$(PDP_OPENGL_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDP_OPENGL_NAME) \ + --author "Tom Schouten" \ + --description "opengl extensions for pdp" \ + --license "GPL v2 or later" + install -p $(PDP_OPENGL_BINARY) $(DESTDIR)$(objectsdir) + install -p $(externals_src)/pdp/opengl/abstractions/*.pd \ + $(DESTDIR)$(objectsdir)/$(PDP_OPENGL_NAME) + install -d $(DESTDIR)$(helpdir)/$(PDP_OPENGL_NAME) + install -p $(externals_src)/pdp/opengl/doc/objects/*.pd $(DESTDIR)$(objectsdir) + install -p $(externals_src)/pdp/opengl/doc/objects/*.pd $(DESTDIR)$(objectsdir)/$(PDP_OPENGL_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/pdp/opengl/README \ + $(DESTDIR)$(readmesdir)/$(PDP_OPENGL_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(PDP_OPENGL_NAME) + install -p $(externals_src)/pdp/opengl/doc/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(PDP_OPENGL_NAME) + install -p $(externals_src)/pdp/opengl/test/*.pd \ + $(DESTDIR)$(examplesdir)/$(PDP_OPENGL_NAME) + +pdp_opengl_clean: + make -C $(externals_src)/pdp/opengl clean + -rm -f -- $(PDP_OPENGL_BINARY) + -rm -f -- $(externals_src)/pdp_opengl/*.bak + -rm -f -- $(externals_src)/pdp_opengl/*.*~ + + +#------------------------------------------------------------------------------# +# PDVJTOOLS +PDVJTOOLS_NAME=pdvjtools +PDVJTOOLS_OBJECTS := $(wildcard $(externals_src)/pdvjtools/*/*.c) +# exclude videogrid for now since it doesn't build with ffmpeg from Debian/stable +PDVJTOOLS_CPP_OBJECTS := $(wildcard $(externals_src)/pdvjtools/[^v]*/*.cc) +pdvjtools: $(externals_src)/pdp/Makefile.config $(PDVJTOOLS_OBJECTS:.c=.$(EXTENSION)) \ +$(PDVJTOOLS_CPP_OBJECTS:.cc=.$(EXTENSION)) + +pdvjtools_install: pdvjtools + install -d $(DESTDIR)$(objectsdir)/$(PDVJTOOLS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDVJTOOLS_NAME) \ + --author "" \ + --description "Pure Data Video Junk" + install -p $(PDVJTOOLS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(PDVJTOOLS_NAME) + install -p $(PDVJTOOLS_CPP_OBJECTS:.cc=.$(EXTENSION)) \ + $(DESTDIR)$(objectsdir)/$(PDVJTOOLS_NAME) + install -d $(DESTDIR)$(helpdir)/$(PDVJTOOLS_NAME) + install -p $(externals_src)/pdvjtools/*/*-help.pd \ + $(DESTDIR)$(helpdir)/$(PDVJTOOLS_NAME) + install -d $(DESTDIR)$(manualsdir)/$(PDVJTOOLS_NAME) + install -p $(externals_src)/pdvjtools/pdp_freeframe/INSTALL \ + $(DESTDIR)$(manualsdir)/$(PDVJTOOLS_NAME)/pdp_freeframe_INSTALL + install -p $(externals_src)/pdvjtools/pdp_frei0r/INSTALL \ + $(DESTDIR)$(manualsdir)/$(PDVJTOOLS_NAME)/pdp_frei0r_INSTALL +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/pdvjtools/README \ +# $(DESTDIR)$(readmesdir)/$(PDVJTOOLS_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(PDVJTOOLS_NAME) +# install -p $(externals_src)/pdvjtools/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(PDVJTOOLS_NAME) + +pdvjtools_clean: + -rm -f -- $(PDVJTOOLS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(PDVJTOOLS_CPP_OBJECTS:.cc=.$(EXTENSION)) + -rm -f -- $(PDVJTOOLS_OBJECTS:.c=.o) + -rm -f -- $(PDVJTOOLS_CPP_OBJECTS:.cc=.o) + -rm -f -- $(externals_src)/pdvjtools/*.bak + -rm -f -- $(externals_src)/pdvjtools/*.*~ + + + +#------------------------------------------------------------------------------# +# PIDIP +PIDIP_NAME=pidip +$(externals_src)/pidip/configure: $(externals_src)/pidip/configure.ac + cd $(externals_src)/pidip && autoconf + +$(externals_src)/pidip/Makefile: $(externals_src)/pidip/Makefile.in + -cd $(externals_src)/pidip && ./configure --with-pd=$(pd_src) \ + --with-pdp=$(externals_src)/pdp + +$(externals_src)/pidip/pidip.$(EXTENSION): $(externals_src)/pidip/configure \ +$(externals_src)/pidip/Makefile + -$(MAKE) -C $(externals_src)/pidip + +pidip: $(externals_src)/pidip/pidip.$(EXTENSION) + +pidip_install: pidip + install -d $(DESTDIR)$(objectsdir)/$(PIDIP_NAME) +# $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PIDIP_NAME) \ +# --author "Yves Degoyon" \ +# --description "PiDiP is Definitely in Pieces" \ +# --license "GNU GPLv2" + install -p $(externals_src)/pidip/*.$(EXTENSION) $(DESTDIR)$(objectsdir)/$(PIDIP_NAME) + install -d $(DESTDIR)$(helpdir)/$(PIDIP_NAME) + install -p $(externals_src)/pidip/doc/*.pd $(DESTDIR)$(helpdir)/$(PIDIP_NAME) + install -p $(externals_src)/pidip/doc/*.pd $(DESTDIR)$(objectsdir)/$(PIDIP_NAME) + install -d $(DESTDIR)$(examplesdir)/$(PIDIP_NAME) + install -p $(externals_src)/pidip/patches/*.* $(DESTDIR)$(examplesdir)/$(PIDIP_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(PIDIP_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/pidip/README \ + $(DESTDIR)$(readmesdir)/$(PIDIP_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(PIDIP_NAME)/images + install -p $(externals_src)/pidip/patches/images/*.* \ + $(DESTDIR)$(examplesdir)/$(PIDIP_NAME)/images + install -d $(DESTDIR)$(examplesdir)/$(PIDIP_NAME)/morphology + install -p $(externals_src)/pidip/patches/morphology/*.* \ + $(DESTDIR)$(examplesdir)/$(PIDIP_NAME)/morphology + +pidip_clean: + -rm -f -- $(externals_src)/pidip/*.$(EXTENSION) + -find $(externals_src)/pidip -name '*.o' | xargs rm -f -- + -rm -f -- $(externals_src)/pidip/*.bak + -rm -f -- $(externals_src)/pidip/Makefile + -rm -f -- $(externals_src)/pidip/configure + + +#------------------------------------------------------------------------------# +# PMPD +PMPD_NAME=pmpd +PMPD_OBJECTS := $(wildcard $(externals_src)/pmpd/src/[a-oq-z]*.c) \ +$(externals_src)/pmpd/src/pmpd~.c +pmpd: $(PMPD_OBJECTS:.c=.$(EXTENSION)) + +pmpd_install: pmpd + install -d $(DESTDIR)$(objectsdir)/$(PMPD_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PMPD_NAME) \ + --author "Cyrille Henry" \ + --description "Physical Modelling for Pd" + -install -p $(externals_src)/pmpd/*.$(EXTENSION) $(DESTDIR)$(objectsdir)/$(PMPD_NAME) + install -d $(DESTDIR)$(helpdir)/$(PMPD_NAME) + install -p $(externals_src)/pmpd/help/*.pd $(DESTDIR)$(helpdir)/$(PMPD_NAME) + install -d $(DESTDIR)$(manualsdir)/$(PMPD_NAME) + install -d $(DESTDIR)$(manualsdir)/$(PMPD_NAME) + install -p $(externals_src)/pmpd/doc/pmpd.pdf/pmpd.pdf \ + $(DESTDIR)$(manualsdir)/$(PMPD_NAME) + install -d $(DESTDIR)$(examplesdir)/$(PMPD_NAME) + install -p $(externals_src)/pmpd/exemples/*.pd \ + $(DESTDIR)$(examplesdir)/$(PMPD_NAME) + +pmpd_clean: + -rm -f -- $(PMPD_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/pmpd/*/*.o + -rm -f -- $(externals_src)/pmpd/*/*.bak + -rm -f -- $(externals_src)/pmpd/*/*~ + + + +#------------------------------------------------------------------------------# +# POSTLUDE +POSTLUDE_NAME=postlude +# flib is separate, so exclude it here +POSTLUDE_OBJECTS := $(wildcard $(externals_src)/postlude/[a-eg-z]*/src/*.c) +# $(externals_src)/postlude/psql/psql.c +postlude: $(POSTLUDE_OBJECTS:.c=.$(EXTENSION)) + +postlude_install: postlude + install -d $(DESTDIR)$(objectsdir)/$(POSTLUDE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(POSTLUDE_NAME) \ + --author "Jamie Bullock" \ + --license "GNU GPL" + install -p $(POSTLUDE_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(POSTLUDE_NAME) + install -p $(externals_src)/postlude/dssi/doc/output~.pd \ + $(DESTDIR)$(objectsdir)/$(POSTLUDE_NAME) + install -d $(DESTDIR)$(helpdir)/$(POSTLUDE_NAME) + install -p $(externals_src)/postlude/*/doc/*-help.pd \ + $(DESTDIR)$(helpdir)/$(POSTLUDE_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(POSTLUDE_NAME) +# install -p $(externals_src)/postlude/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(POSTLUDE_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/postlude/dssi/README \ + $(DESTDIR)$(readmesdir)/$(POSTLUDE_NAME)-dssi.txt + install -p $(externals_src)/postlude/psql/README \ + $(DESTDIR)$(readmesdir)/$(POSTLUDE_NAME)-psql.txt + install -d $(DESTDIR)$(examplesdir)/$(POSTLUDE_NAME) +# install -p $(externals_src)/postlude/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(POSTLUDE_NAME) + +postlude_clean: + -rm -f -- $(POSTLUDE_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(POSTLUDE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/postlude/*/*.bak + -rm -f -- $(externals_src)/postlude/*/*.*~ + + + +#------------------------------------------------------------------------------# +# SIGPACK +SIGPACK_NAME=sigpack +SIGPACK_SRC := $(wildcard $(externals_src)/sigpack/source/*~.c) +SIGPACK_VERSION := $(shell grep "define VERSION" \ + $(externals_src)/sigpack/source/sIgpAck.c | cut -d '"' -f 2) + +SIGPACK_OBJECTS := $(SIGPACK_SRC:.c=.o) +$(SIGPACK_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) -O2 -funroll-loops -fomit-frame-pointer -o "$*.o" -c "$*.c" + +sigpack: $(SIGPACK_SRC:.c=.$(EXTENSION)) + +sigpack_install: sigpack + install -d $(DESTDIR)$(objectsdir)/$(SIGPACK_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(SIGPACK_NAME) \ + --author "weiss@weiss-archiv.de" \ + --license "GNU GPL 2" \ + --version "$(SIGPACK_VERSION)" + install -p $(SIGPACK_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(SIGPACK_NAME) + install -d $(DESTDIR)$(helpdir)/$(SIGPACK_NAME) + install -p $(externals_src)/sigpack/help/*.pd \ + $(DESTDIR)$(helpdir)/$(SIGPACK_NAME) + install -p $(externals_src)/sigpack/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(SIGPACK_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(SIGPACK_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/sigpack/readme.txt \ + $(DESTDIR)$(readmesdir)/$(SIGPACK_NAME).txt + +sigpack_clean: + -rm -f -- $(externals_src)/sigpack/source/*.$(EXTENSION) + -rm -f -- $(externals_src)/sigpack/source/*.o + -rm -f -- $(externals_src)/sigpack/*/*.bak + -rm -f -- $(externals_src)/sigpack/*/*.*~ + + +#------------------------------------------------------------------------------# +# SIXAXIS +SIXAXIS_NAME=io +SIXAXIS_OBJECTS = $(externals_src)/io/sixaxis/sixaxis.c +sixaxis: $(SIXAXIS_OBJECTS:.c=.$(EXTENSION)) + +sixaxis_install: sixaxis + install -d $(DESTDIR)$(objectsdir)/$(SIXAXIS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(SIXAXIS_NAME) \ + --author "Hans-Christoph Steiner" \ + --description "supports the Sony SIXAXIS controller's accelerometer" \ + --license "GNU GPL" \ + --version "0.1" + install -p $(SIXAXIS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(SIXAXIS_NAME) + install -d $(DESTDIR)$(helpdir)/$(SIXAXIS_NAME) + install -p $(externals_src)/io/sixaxis/*.pd \ + $(DESTDIR)$(helpdir)/$(SIXAXIS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(SIXAXIS_NAME) +# install -p $(externals_src)/io/sixaxis/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(SIXAXIS_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/io/sixaxis/README \ +# $(DESTDIR)$(readmesdir)/$(SIXAXIS_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(SIXAXIS_NAME) +# install -p $(externals_src)/io/sixaxis/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(SIXAXIS_NAME) + +sixaxis_clean: + -rm -f -- $(SIXAXIS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(SIXAXIS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/io/sixaxis/*.bak + -rm -f -- $(externals_src)/io/sixaxis/*.*~ + + +#------------------------------------------------------------------------------# +# SMLIB +SMLIB_NAME=smlib +# exclude SMlib.c since its just for the compiled library +SMLIB_OBJECTS := $(wildcard $(externals_src)/smlib/source/[a-z]*.c) +smlib: $(SMLIB_OBJECTS:.c=.$(EXTENSION)) + +smlib_install: smlib + install -d $(DESTDIR)$(objectsdir)/$(SMLIB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(SMLIB_NAME) \ + --author "Johannes Taelman <johannes.taelman@rug.ac.be>" \ + --license "GNU GPL" \ + --description "vector processing, vector analysis, vector synthesis, number stream analysis, number stream filters" + install -p $(SMLIB_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(SMLIB_NAME) + install -d $(DESTDIR)$(helpdir)/$(SMLIB_NAME) + install -p $(wildcard $(externals_src)/smlib/help/*.pd )\ + $(DESTDIR)$(helpdir)/$(SMLIB_NAME) + install -p $(wildcard $(externals_src)/smlib/help/*.pd )\ + $(DESTDIR)$(objectsdir)/$(SMLIB_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(SMLIB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/smlib/readme.txt $(DESTDIR)$(readmesdir)/$(SMLIB_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(SMLIB_NAME) + install -p $(wildcard $(externals_src)/smlib/examples/*.pd) \ + $(DESTDIR)$(examplesdir)/$(SMLIB_NAME) + +smlib_clean: + -rm -f -- $(SMLIB_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(externals_src)/smlib/*.o + -rm -f -- $(externals_src)/smlib/*.bak + -rm -f -- $(externals_src)/smlib/*.*~ + + + +#------------------------------------------------------------------------------# +# TCLPD +TCLPD_NAME=tclpd +TCLPD_LIB := $(externals_src)/tclpd/tcl.$(EXTENSION) + +$(TCLPD_LIB): + cd $(externals_src)/tclpd && make + +tclpd: $(TCLPD_LIB) + +tclpd_install: tclpd + install -d $(DESTDIR)$(objectsdir) + install -p $(TCLPD_LIB) $(DESTDIR)$(objectsdir) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/tclpd/README \ + $(DESTDIR)$(readmesdir)/$(TCLPD_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(TCLPD_NAME) +# install -p $(externals_src)/tclpd/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(TCLPD_NAME) + +tclpd_clean: + make -C $(externals_src)/tclpd clean + -rm -f -- $(TCLPD_LIB) + -rm -f -- $(externals_src)/tclpd/*.bak + -rm -f -- $(externals_src)/tclpd/*.*~ + + +#------------------------------------------------------------------------------# +# TKWIDGETS +TKWIDGETS_NAME=tkwidgets +TKWIDGETS_OBJECTS := $(wildcard $(externals_src)/tkwidgets/*.c) +TKWIDGETS_SHARED := $(wildcard $(externals_src)/tkwidgets/shared/*.c) +tkwidgets_shared: $(TKWIDGETS_SHARED:.c=.o) +# $(CC) $(DYLIB_LDFLAGS) \ +# -o $(externals_src)/tkwidgets/libtkwidgets.$(DYLIB_EXTENSION) \ +# $(TKWIDGETS_SHARED:.c=.o) + +tkwidgets: tkwidgets_shared $(TKWIDGETS_OBJECTS:.c=.$(EXTENSION)) + +tkwidgets_install: tkwidgets + install -d $(DESTDIR)$(objectsdir)/$(TKWIDGETS_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(TKWIDGETS_NAME) \ + --author "Hans-Christoph Steiner and other" \ + --description "a collection of objects based on Tk widgets" \ + --license "GPLv2 or later" + install -p $(TKWIDGETS_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(TKWIDGETS_NAME) + install -d $(DESTDIR)$(helpdir)/$(TKWIDGETS_NAME) + install -p $(externals_src)/tkwidgets/*.pd \ + $(DESTDIR)$(helpdir)/$(TKWIDGETS_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(TKWIDGETS_NAME) +# install -p $(externals_src)/tkwidgets/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(TKWIDGETS_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/tkwidgets/README \ +# $(DESTDIR)$(readmesdir)/$(TKWIDGETS_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(TKWIDGETS_NAME) +# install -p $(externals_src)/tkwidgets/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(TKWIDGETS_NAME) + +tkwidgets_clean: + -rm -f -- $(TKWIDGETS_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(TKWIDGETS_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/tkwidgets/*.bak + -rm -f -- $(externals_src)/tkwidgets/*.*~ + +#------------------------------------------------------------------------------# +# TOF +TOF_NAME=tof +TOF_OBJECTS := $(wildcard $(externals_src)/tof/src/*.c) +tof: $(TOF_OBJECTS:.c=.$(EXTENSION)) + +tof_install: tof + install -d $(DESTDIR)$(objectsdir)/$(TOF_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(TOF_NAME) \ + --author "Thomas Ouellet Fredericks" \ + --description "Various utilities" \ + --license "http://www.kopimi.se/kopimi/" \ + --version "1" + install -p $(TOF_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(TOF_NAME) + install -d $(DESTDIR)$(helpdir)/$(TOF_NAME) + install -p $(externals_src)/tof/help/*.pd \ + $(DESTDIR)$(helpdir)/$(TOF_NAME) + install -p $(externals_src)/tof/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(TOF_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(TOF_NAME) +# install -p $(externals_src)/tof/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(TOF_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/tof/README \ + $(DESTDIR)$(readmesdir)/$(TOF_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(TOF_NAME) +# install -p $(externals_src)/tof/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(TOF_NAME) + +tof_clean: + -rm -f -- $(TOF_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(TOF_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/tof/src/*.bak + -rm -f -- $(externals_src)/tof/src/*.*~ + +#------------------------------------------------------------------------------# +# TOXY +TOXY_NAME=toxy +# toxy is compiled straight into $(OUT_DIR) +TOXY_OUT_DIR=$(DESTDIR)$(objectsdir)/$(TOXY_NAME) +toxy: + + +toxy_install: toxy + install -d $(DESTDIR)$(objectsdir)/$(TOXY_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(TOXY_NAME) \ + --author "Kzrysztof Czaja" \ + --license "BSD" \ + --description "objects for working with Tcl and Pd's Tk GUI" + cd $(externals_src)/miXed/toxy && $(MAKE) OUT_DIR=$(TOXY_OUT_DIR) + install -d $(DESTDIR)$(helpdir)/$(TOXY_NAME) + install -p $(externals_src)/miXed/doc/help/toxy/*.* \ + $(DESTDIR)$(helpdir)/$(TOXY_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(TOXY_NAME) + install -d $(DESTDIR)$(examplesdir)/$(TOXY_NAME) + install -p $(externals_src)/miXed/test/toxy/*.* \ + $(DESTDIR)$(examplesdir)/$(TOXY_NAME) + + +toxy_clean: + -$(MAKE) -C $(externals_src)/mixed/toxy $(DEST_PATHS) clean + + +#------------------------------------------------------------------------------# +# UNAUTHORIZED +UNAUTHORIZED_NAME=unauthorized +# these need to be created before compiling the C +UNAUTHORIZED_TKFILES = $(wildcard $(externals_src)/unauthorized/*/*.tk) +%.tk2c: %.tk + bash $(externals_src)/unauthorized/tk2c.bash < $*.tk > $*.tk2c + +# a number of objects don't compile under MinGW (yet? they used to, but the +# needed changes were overwritten, so they are in CVS +ifeq ($(OS_NAME),windows) +UNAUTHORIZED_OBJECTS := $(wildcard $(externals_src)/unauthorized/[abdg-oqrw]*/*.c)\ +$(wildcard $(externals_src)/unauthorized/c?[a-np-z]*/*.c) +else + ifeq ($(OS_NAME),darwin) + # [cooled~] crashes Pd on Mac OS X, [vocoder~] doesn't compile + UNAUTHORIZED_OBJECTS := $(wildcard $(externals_src)/unauthorized/[abd-uw-z]*/*.c)\ + $(wildcard $(externals_src)/unauthorized/c?[a-np-z]*/*.c) + else + # GNU/Linux, BSD, IRIX, etc. + UNAUTHORIZED_OBJECTS := $(wildcard $(externals_src)/unauthorized/*/*.c) + endif +endif + + +# [vocoder~] is built separately since its made from a number of files +UNAUTHORIZED_VOCODER = $(wildcard $(externals_src)/unauthorized/vocoder*/*.c) + $(externals_src)/unauthorized/vocoder~/vocoder~.$(EXTENSION): $(UNAUTHORIZED_VOCODER:.c=.o) + $(CC) $(LDFLAGS) -o $(externals_src)/unauthorized/vocoder~/vocoder~.$(EXTENSION) \ + $(UNAUTHORIZED_VOCODER:.c=.o) $(LIBS) + +unauthorized: $(externals_src)/unauthorized/vocoder~/vocoder~.$(EXTENSION) \ +$(UNAUTHORIZED_TKFILES:.tk=.tk2c) $(UNAUTHORIZED_OBJECTS:.c=.$(EXTENSION)) + +unauthorized_install: unauthorized + install -d $(DESTDIR)$(objectsdir)/$(UNAUTHORIZED_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(UNAUTHORIZED_NAME) \ + --author "Yves Degoyon" \ + --license "GNU GPL" \ + --description "GUI and streaming objects" + install -p $(externals_src)/unauthorized/*/*.$(EXTENSION) \ + $(DESTDIR)$(objectsdir)/$(UNAUTHORIZED_NAME) + install -d $(DESTDIR)$(helpdir)/$(UNAUTHORIZED_NAME) + install -p $(externals_src)/unauthorized/*/*.pd \ + $(DESTDIR)$(helpdir)/$(UNAUTHORIZED_NAME) + install -p $(externals_src)/unauthorized/*/*.pd \ + $(DESTDIR)$(objectsdir)/$(UNAUTHORIZED_NAME) + install -p $(externals_src)/unauthorized/*/*.pls \ + $(DESTDIR)$(helpdir)/$(UNAUTHORIZED_NAME) + install -d $(DESTDIR)$(helpdir)/$(UNAUTHORIZED_NAME)/blm + install -p $(externals_src)/unauthorized/blinkenlights/blm/*.* \ + $(DESTDIR)$(helpdir)/$(UNAUTHORIZED_NAME)/blm + install -d $(DESTDIR)$(manualsdir)/$(UNAUTHORIZED_NAME) + install -p $(externals_src)/unauthorized/*/*.txt \ + $(DESTDIR)$(manualsdir)/$(UNAUTHORIZED_NAME) + +unauthorized_clean: + -rm -f -- $(UNAUTHORIZED_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(UNAUTHORIZED_OBJECTS:.c=.o) + -rm -f -- $(UNAUTHORIZED_VOCODER:.c=.$(EXTENSION)) + -rm -f -- $(UNAUTHORIZED_VOCODER:.c=.o) + -rm -f -- $(externals_src)/unauthorized/*/*.bak + -rm -f -- $(externals_src)/*/*.*~ + -rm -f -- $(externals_src)/*.*~ + + + +#------------------------------------------------------------------------------# +# USBHID +USBHID_NAME=usbhid +USBHID_OBJECTS := $(wildcard $(externals_src)/hcs/usbhid/*.c) +usbhid: $(USBHID_OBJECTS:.c=.$(EXTENSION)) + +usbhid_install: usbhid + install -d $(DESTDIR)$(objectsdir)/$(USBHID_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(USBHID_NAME) \ + --author "Hans-Christoph Steiner" \ + --description "pure USB HID object for accessing HID devices" \ + --license "GNU GPL" \ + --version "" + install -p $(USBHID_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(USBHID_NAME) + install -d $(DESTDIR)$(helpdir)/$(USBHID_NAME) + install -p $(externals_src)/hcs/usbhid/*-help.pd \ + $(DESTDIR)$(helpdir)/$(USBHID_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(USBHID_NAME) +# install -p $(externals_src)/usbhid/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(USBHID_NAME) +# install -d $(DESTDIR)$(readmesdir) +# install -p $(externals_src)/usbhid/README \ +# $(DESTDIR)$(readmesdir)/$(USBHID_NAME).txt +# install -d $(DESTDIR)$(examplesdir)/$(USBHID_NAME) +# install -p $(externals_src)/usbhid/examples/*.pd \ +# $(DESTDIR)$(examplesdir)/$(USBHID_NAME) + +usbhid_clean: + -rm -f -- $(USBHID_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(USBHID_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/usbhid/*.bak + -rm -f -- $(externals_src)/usbhid/*.*~ + + + +#------------------------------------------------------------------------------# +# VBAP +VBAP_NAME=vbap +VBAP_OBJECTS := $(wildcard $(externals_src)/vbap/*.c) +vbap: $(VBAP_OBJECTS:.c=.$(EXTENSION)) + +vbap_install: vbap + install -d $(DESTDIR)$(objectsdir)/$(VBAP_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(VBAP_NAME) \ + --author "Ville Pulkki" \ + --description "Vector Based Amplitude Panning" \ + --version "" + install -p $(VBAP_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(VBAP_NAME) + install -p $(shell ls -1 $(externals_src)/vbap/*.pd | grep -v '-help.pd') \ + $(DESTDIR)$(objectsdir)/$(VBAP_NAME) + install -d $(DESTDIR)$(helpdir)/$(VBAP_NAME) + install -p $(externals_src)/vbap/*-help.pd $(DESTDIR)$(helpdir)/$(VBAP_NAME) + install -p $(externals_src)/vbap/*-help.pd $(DESTDIR)$(objectsdir)/$(VBAP_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(VBAP_NAME) +# install -p $(externals_src)/vbap/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(VBAP_NAME) + install -d $(DESTDIR)$(examplesdir)/$(VBAP_NAME) + install -p $(externals_src)/vbap/*-demo.pd \ + $(DESTDIR)$(examplesdir)/$(VBAP_NAME) + +vbap_clean: + -rm -f -- $(VBAP_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(VBAP_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/vbap/*.bak + -rm -f -- $(externals_src)/vbap/*.*~ + + + + +#------------------------------------------------------------------------------# +# WINDOWING +WINDOWING_NAME=windowing +WINDOWING_OBJECTS := $(wildcard $(externals_src)/windowing/*.c) +WINDOWING_SHARED := $(wildcard $(externals_src)/windowing/shared/*.c) +windowing_shared: $(WINDOWING_SHARED:.c=.o) +# $(CC) $(DYLIB_LDFLAGS) \ +# -o $(externals_src)/windowing/libwindowing.$(DYLIB_EXTENSION) \ +# $(WINDOWING_SHARED:.c=.o) + +windowing: windowing_shared $(WINDOWING_OBJECTS:.c=.$(EXTENSION)) + +windowing_install: windowing + install -d $(DESTDIR)$(objectsdir)/$(WINDOWING_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(WINDOWING_NAME) \ + --author "Joe Sarlo" \ + --license "GPLv2 or later" + install -p $(WINDOWING_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(WINDOWING_NAME) + install -d $(DESTDIR)$(helpdir)/$(WINDOWING_NAME) + install -p $(externals_src)/windowing/*-help.pd \ + $(DESTDIR)$(helpdir)/$(WINDOWING_NAME) + install -p $(externals_src)/windowing/*-help.pd \ + $(DESTDIR)$(objectsdir)/$(WINDOWING_NAME) +# install -d $(DESTDIR)$(manualsdir)/$(WINDOWING_NAME) +# install -p $(externals_src)/windowing/manual.txt \ +# $(DESTDIR)$(manualsdir)/$(WINDOWING_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/windowing/README \ + $(DESTDIR)$(readmesdir)/$(WINDOWING_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(WINDOWING_NAME) + install -p $(externals_src)/windowing/examples/*.pd \ + $(DESTDIR)$(examplesdir)/$(WINDOWING_NAME) + +windowing_clean: + -rm -f -- $(WINDOWING_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(WINDOWING_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/windowing/*.bak + -rm -f -- $(externals_src)/windowing/*.*~ + + +#------------------------------------------------------------------------------# +# XBEE +# this is installed into the "io" library +XBEE_NAME=io +XBEE_SRC := $(wildcard $(externals_src)/io/xbee/*.c) + +XBEE_OBJECTS := $(XBEE_SRC:.c=.o) +$(XBEE_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) -o "$*.o" -c "$*.c" + +$(externals_src)/io/xbee/xbee_test.$(EXTENSION): $(XBEE_OBJECTS) + $(CC) $(LDFLAGS) -o $(externals_src)/io/xbee/xbee_test.$(EXTENSION) \ + $(XBEE_OBJECTS) +# $(STRIP) $(externals_src)/io/xbee/xbee_test.$(EXTENSION) + +xbee: $(externals_src)/io/xbee/xbee_test.$(EXTENSION) + +xbee_install: xbee + install -d $(DESTDIR)$(objectsdir)/$(XBEE_NAME) + install -p $(externals_src)/io/xbee/xbee_test.$(EXTENSION) \ + $(DESTDIR)$(objectsdir)/$(XBEE_NAME) + install -d $(DESTDIR)$(helpdir)/$(XBEE_NAME) + install -p $(externals_src)/io/xbee/*.pd \ + $(DESTDIR)$(helpdir)/$(XBEE_NAME) + install -d $(DESTDIR)$(manualsdir)/$(XBEE_NAME) + install -p $(externals_src)/io/xbee/*.txt \ + $(DESTDIR)$(manualsdir)/$(XBEE_NAME) + +xbee_clean: + -rm -f -- $(externals_src)/io/xbee/xbee_test.$(EXTENSION) + -rm -f -- $(XBEE_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/io/xbee/*.bak + -rm -f -- $(externals_src)/io/xbee/*.*~ + + +#------------------------------------------------------------------------------# +# Zexy +ZEXY_NAME = zexy +ZEXY_OBJECTS := $(wildcard $(externals_src)/zexy/src/[a-vxy0]*.c) \ +$(externals_src)/zexy/src/wrap.c $(externals_src)/zexy/src/z~.c +ZEXY_VERSION := $(shell grep VERSION $(externals_src)/zexy/src/zexy.h | \ + grep -v _VERSION | cut -d ' ' -f 3 | cut -d '"' -f 2) + +# ADAPTED FROM IEM16 - previous script broke builds. +ZEXY_DIR := $(externals_src)/zexy/src + +$(ZEXY_DIR)/aclocal.m4: $(ZEXY_DIR)/acinclude.m4 + cd $(ZEXY_DIR) && aclocal + +$(ZEXY_DIR)/configure: $(ZEXY_DIR)/configure.ac $(ZEXY_DIR)/aclocal.m4 + cd $(ZEXY_DIR) && autoconf + +$(ZEXY_DIR)/Make.config: $(ZEXY_DIR)/Make.config.in \ +$(ZEXY_DIR)/configure + cd $(ZEXY_DIR) && ./configure --disable-library \ + --with-pd=$(pd_src) + +zexy: $(ZEXY_DIR)/Make.config + $(MAKE) -C $(ZEXY_DIR) + +zexy_install: zexy + install -d $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(ZEXY_NAME) \ + --author "IOhannes m zmoelnig <zmoelnig@iem.kug.ac.at>" \ + --license "GNU GPL" \ + --description "swiss army knife for pd" \ + --version "$(ZEXY_VERSION)" + install -p $(ZEXY_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) +# the below doesn't work for some reason, probably because of some kind of +# strange make execution order <hans@at.or.at> +# install -p $(shell $(externals_src)/zexy/src/*.$(EXTENSION)) \ +# $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) + install -p $(shell ls -1 $(externals_src)/zexy/abs/*.pd | \ + grep -v '-help.pd' | sed 's|\(.*\)|"\1"|g') \ + $(DESTDIR)$(objectsdir)/$(ZEXY_NAME) +# an escape pattern for the abstractions with special characters +# grep -v '-help.pd' | sed 's/\([&<>|~]\)/\\\1/g') + install -d $(DESTDIR)$(helpdir)/$(ZEXY_NAME) + install -p $(shell ls -1 $(externals_src)/zexy/abs/*-help.pd | \ + sed 's|\(.*\)|"\1"|g') $(DESTDIR)$(helpdir)/$(ZEXY_NAME) + install -p $(shell ls -1 $(externals_src)/zexy/reference/*-help.pd | \ + sed 's|\(.*\)|"\1"|g') $(DESTDIR)$(helpdir)/$(ZEXY_NAME) + install -p $(externals_src)/zexy/zexy.pd $(DESTDIR)$(helpdir) + +zexy_clean: + -$(MAKE) -C $(externals_src)/zexy/src clean + -rm -f -- $(ZEXY_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(ZEXY_OBJECTS:.c=.d) + -rm -rf -- $(externals_src)/zexy/src/autom4ate + -rm -rf -- $(externals_src)/zexy/src/conf[0-9][0-9][0-9]* + -rm -f -- $(externals_src)/zexy/src/configure + -rm -f -- $(externals_src)/zexy/src/Make.config + -rm -f -- $(externals_src)/zexy/src/zexyconf.h + -rm -f -- $(externals_src)/zexy/src/*.o + -rm -f -- $(externals_src)/zexy/src/*.bak + -rm -f -- $(externals_src)/*/*.*~ + -rm -f -- $(externals_src)/*.*~ + + + +#------------------------------------------------------------------------------# +# pdcontainer +PDCONTAINER_NAME = pdcontainer +PDCONTAINER_INCLUDE = -I$(externals_src)/grh/PDContainer +PDCONTAINER_SRC = $(wildcard $(externals_src)/grh/PDContainer/src/[hH]*.cpp) \ + $(wildcard $(externals_src)/grh/PDContainer/tinyxml/*.cpp) +PDCONTAINER_OBJ = $(PDCONTAINER_SRC:.cpp=.o) +PDCONTAINER_TMP = $(wildcard $(externals_src)/grh/PDContainer/src/h_*.cpp) +PDCONTAINER_TARGETS = $(PDCONTAINER_TMP:.cpp=.$(EXTENSION)) +PDC_SHARED = $(wildcard $(externals_src)/grh/PDContainer/tinyxml/*.cpp) + +pdcontainer: $(PDCONTAINER_TARGETS) + +$(PDCONTAINER_TARGETS) : %.$(EXTENSION) : $(PDCONTAINER_OBJ) + $(CXX) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(shell ls `echo "$*.o" | sed -e s/"h_[a-z]"/"\?\?"/g -e s/"map"/"Map"/g -e s/"set"/"Set"/g -e s/"queue"/"Queue"/g`) $(PDC_SHARED:.cpp=.o) $(LIBS) + $(STRIP) $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + #rm -f -- "$*.o" + +$(PDCONTAINER_OBJ) : %.o : %.cpp + $(CXX) $(CXXFLAGS) -DPDCONTAINER_SINGLE_OBJECT $(PDCONTAINER_INCLUDE) -o "$*.o" -c "$*.cpp" + +pdcontainer_install: pdcontainer + install -d $(DESTDIR)$(objectsdir)/$(PDCONTAINER_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDCONTAINER_NAME) \ + --author "Georg Holzmann" \ + --description "container objects of the C++ STL for Pd" \ + --license "GPL" \ + --version "" + install -p $(PDCONTAINER_TARGETS) $(DESTDIR)$(objectsdir)/$(PDCONTAINER_NAME) + install -d $(DESTDIR)$(helpdir)/$(PDCONTAINER_NAME) + install -p $(externals_src)/grh/PDContainer/help/*.pd \ + $(DESTDIR)$(helpdir)/$(PDCONTAINER_NAME) + install -p $(externals_src)/grh/PDContainer/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(PDCONTAINER_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/grh/PDContainer/readme.txt \ + $(DESTDIR)$(readmesdir)/$(PDCONTAINER_NAME).txt + +pdcontainer_clean: + -rm -f -- $(PDCONTAINER_TARGETS) + -rm -f -- $(externals_src)/grh/PDContainer/src/*.o + -rm -f -- $(externals_src)/grh/PDContainer/src/*.bak + -rm -f -- $(externals_src)/grh/PDContainer/src/*.*~ + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.o + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.bak + -rm -f -- $(externals_src)/grh/PDContainer/tinyxml/*.*~ + + + +#------------------------------------------------------------------------------# +# adaptive +ADAPTIVE_NAME=adaptive +ADAPTIVE_SRC := $(wildcard $(externals_src)/grh/adaptive/src/*.c) +ADAPTIVE_OBJECTS := $(ADAPTIVE_SRC:.c=.o) +ADAPTIVE_FLAGS := -DADAPTIVE_SINGLE_OBJ +ADAPTIVE_TMP := $(wildcard $(externals_src)/grh/adaptive/src/*lms*.c) +ADAPTIVE_TARGETS := $(ADAPTIVE_TMP:.c=.$(EXTENSION)) + +adaptive: $(ADAPTIVE_TARGETS) + +$(ADAPTIVE_TARGETS) : %.$(EXTENSION) : %.o $(ADAPTIVE_OBJECTS) + $(CC) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(externals_src)/grh/adaptive/src/adaptive.o $(LIBS) + $(STRIP) $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + rm -f -- "$*.o" + +$(ADAPTIVE_OBJECTS) : %.o : %.c + $(CC) $(CFLAGS) $(ADAPTIVE_FLAGS) -o "$*.o" -c "$*.c" + +adaptive_install: adaptive + install -d $(DESTDIR)$(objectsdir)/$(ADAPTIVE_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(ADAPTIVE_NAME) \ + --author "Georg Holzmann, Gerda Strobl" \ + --description "library for adaptive systems and filters" \ + --license "GNU GPL" \ + --version "" + install -p $(ADAPTIVE_TARGETS) $(DESTDIR)$(objectsdir)/$(ADAPTIVE_NAME) + install -d $(DESTDIR)$(helpdir)/$(ADAPTIVE_NAME) + install -p $(externals_src)/grh/adaptive/doc/*.pd \ + $(DESTDIR)$(helpdir)/$(ADAPTIVE_NAME) + install -p $(externals_src)/grh/adaptive/doc/*.pd \ + $(DESTDIR)$(objectsdir)/$(ADAPTIVE_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/grh/adaptive/readme \ + $(DESTDIR)$(readmesdir)/$(ADAPTIVE_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(ADAPTIVE_NAME) + install -p $(externals_src)/grh/adaptive/examples/*.pd \ + $(externals_src)/grh/adaptive/examples/*.dat \ + $(DESTDIR)$(examplesdir)/$(ADAPTIVE_NAME) + +adaptive_clean: + -rm -f -- $(ADAPTIVE_TARGETS) + -rm -f -- $(ADAPTIVE_OBJECTS) + -rm -f -- $(externals_src)/grh/adaptive/src/*.bak + -rm -f -- $(externals_src)/grh/adaptive/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iem_adaptfilt +IEMADAPT_NAME=iem_adaptfilt +IEMADAPT_SRC := $(wildcard $(externals_src)/iem/iem_adaptfilt/src/*~.c) + +iem_adaptfilt: $(IEMADAPT_SRC:.c=.$(EXTENSION)) + +iem_adaptfilt_install: iem_adaptfilt + install -d $(DESTDIR)$(objectsdir)/$(IEMADAPT_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMADAPT_NAME) \ + --author "Markus Noisternig, Thomas Musil" \ + --description "several algorithms for adaptive filters" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMADAPT_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMADAPT_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMADAPT_NAME) + install -p $(externals_src)/iem/iem_adaptfilt/help/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMADAPT_NAME) + install -p $(externals_src)/iem/iem_adaptfilt/help/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMADAPT_NAME) + install -d $(DESTDIR)$(manualsdir)/$(IEMADAPT_NAME) + install -p $(externals_src)/iem/iem_adaptfilt/doc/adapt_filt_lib.pdf \ + $(DESTDIR)$(manualsdir)/$(IEMADAPT_NAME) + +iem_adaptfilt_clean: + -rm -f -- $(IEMADAPT_SRC:.c=.$(EXTENSION)) + -rm -f -- $(IEMADAPT_SRC:.c=.o) + -rm -f -- $(externals_src)/iem/iem_adaptfilt/src/*.bak + -rm -f -- $(externals_src)/iem/iem_adaptfilt/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iem_delay +IEMDELAY_NAME=iem_delay +IEMDELAY_SRC := $(wildcard $(externals_src)/iem/iem_delay/src/*~.c) + +iem_delay: $(IEMDELAY_SRC:.c=.$(EXTENSION)) + +iem_delay_install: iem_delay + install -d $(DESTDIR)$(objectsdir)/$(IEMDELAY_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMDELAY_NAME) \ + --author "Thomas Musil" \ + --description "various delay objects" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMDELAY_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMDELAY_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMDELAY_NAME) + install -p $(externals_src)/iem/iem_delay/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMDELAY_NAME) + install -p $(externals_src)/iem/iem_delay/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMDELAY_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_delay/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEMDELAY_NAME).txt + +iem_delay_clean: + -rm -f -- $(IEMDELAY_SRC:.c=.$(EXTENSION)) + -rm -f -- $(IEMDELAY_SRC:.c=.o) + -rm -f -- $(externals_src)/iem/iem_delay/src/*.bak + -rm -f -- $(externals_src)/iem/iem_delay/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iem_roomsim +IEMROOM_NAME=iem_roomsim +IEMROOM_SRC := $(wildcard $(externals_src)/iem/iem_roomsim/src/*d.c) + +iem_roomsim: $(IEMROOM_SRC:.c=.$(EXTENSION)) + +iem_roomsim_install: iem_roomsim + install -d $(DESTDIR)$(objectsdir)/$(IEMROOM_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMROOM_NAME) \ + --author "Thomas Musil" \ + --description "objects for room simulation" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMROOM_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMROOM_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMROOM_NAME) + install -p $(externals_src)/iem/iem_roomsim/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMROOM_NAME) + install -p $(externals_src)/iem/iem_roomsim/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMROOM_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_roomsim/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEMROOM_NAME).txt + +iem_roomsim_clean: + -rm -f -- $(IEMROOM_SRC:.c=.$(EXTENSION)) + -rm -f -- $(IEMROOM_SRC:.c=.o) + -rm -f -- $(externals_src)/iem/iem_roomsim/src/*.bak + -rm -f -- $(externals_src)/iem/iem_roomsim/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iem_spec2 +IEMSPEC2_NAME=iem_spec2 +IEMSPEC2_SRC := $(wildcard $(externals_src)/iem/iem_spec2/src/*~.c) + +iem_spec2: $(IEMSPEC2_SRC:.c=.$(EXTENSION)) + +iem_spec2_install: iem_spec2 + install -d $(DESTDIR)$(objectsdir)/$(IEMSPEC2_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMSPEC2_NAME) \ + --author "Thomas Musil" \ + --description "special spectral processing objects, which only calculates blocksize/2 + 1 samples of a signal" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMSPEC2_SRC:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(IEMSPEC2_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMSPEC2_NAME) + install -p $(externals_src)/iem/iem_spec2/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMSPEC2_NAME) + install -p $(externals_src)/iem/iem_spec2/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMSPEC2_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_spec2/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEMSPEC2_NAME).txt + +iem_spec2_clean: + -rm -f -- $(IEMSPEC2_SRC:.c=.$(EXTENSION)) + -rm -f -- $(IEMSPEC2_SRC:.c=.o) + -rm -f -- $(externals_src)/iem/iem_spec2/src/*.bak + -rm -f -- $(externals_src)/iem/iem_spec2/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iem_tab +IEMTAB_NAME=iem_tab +IEMTAB_SRC := $(wildcard $(externals_src)/iem/iem_tab/src/*.c) +IEMTAB_OBJ := $(IEMTAB_SRC:.c=.o) +IEMTAB_TARTMP := $(wildcard $(externals_src)/iem/iem_tab/src/tab_*.c) +IEMTAB_TARGETS := $(IEMTAB_TARTMP:.c=.$(EXTENSION)) +IEMTAB_FLAGS := -DIEMTAB_SINGLE_OBJ + +iem_tab: $(IEMTAB_TARGETS) + +$(IEMTAB_TARGETS) : %.$(EXTENSION) : %.o $(IEMTAB_OBJ) + $(CC) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(externals_src)/iem/iem_tab/src/iem_tab.o $(LIBS) + $(STRIP) $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + rm -f -- "$*.o" + +$(IEMTAB_OBJ) : %.o : %.c + $(CC) $(CFLAGS) $(IEMTAB_FLAGS) -o "$*.o" -c "$*.c" + +iem_tab_install: iem_tab + install -d $(DESTDIR)$(objectsdir)/$(IEMTAB_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMTAB_NAME) \ + --author "Thomas Musil" \ + --description "library to manipulate tables or arrays" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMTAB_TARGETS) $(DESTDIR)$(objectsdir)/$(IEMTAB_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMTAB_NAME) + install -p $(externals_src)/iem/iem_tab/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMTAB_NAME) + install -p $(externals_src)/iem/iem_tab/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMTAB_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iem_tab/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEMTAB_NAME).txt + +iem_tab_clean: + -rm -f -- $(IEMTAB_TARGETS) + -rm -f -- $(IEMTAB_OBJ) + -rm -f -- $(externals_src)/iem/iem_tab/src/*.bak + -rm -f -- $(externals_src)/iem/iem_tab/src/*.*~ + + + +#------------------------------------------------------------------------------# +# flashserver +FLASHSERVER_NAME=flashserver +FLASHSERVER_OBJECTS := $(wildcard $(externals_src)/olafmatt/flashserver/*.c) +flashserver: $(FLASHSERVER_OBJECTS:.c=.$(EXTENSION)) + +flashserver_install: flashserver + install -d $(DESTDIR)$(objectsdir)/$(FLASHSERVER_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(FLASHSERVER_NAME) \ + --author "Olaf Matthes" \ + --description "a flashserver for multiple clients" \ + --license "GNU GPL" \ + --version "" + install -p $(FLASHSERVER_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(FLASHSERVER_NAME) + install -d $(DESTDIR)$(helpdir)/$(FLASHSERVER_NAME) + install -p $(externals_src)/olafmatt/flashserver/*.pd \ + $(DESTDIR)$(helpdir)/$(FLASHSERVER_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/olafmatt/flashserver/README \ + $(DESTDIR)$(readmesdir)/$(FLASHSERVER_NAME).txt + +flashserver_clean: + -rm -f -- $(FLASHSERVER_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(FLASHSERVER_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/olafmatt/flashserver/*.bak + -rm -f -- $(externals_src)/olafmatt/flashserver/*.*~ + + + +#------------------------------------------------------------------------------# +# hdspm_mixer +HDSPM_NAME=hdspm_mixer +HDSPM_SRC := $(wildcard $(externals_src)/iem/hdspm_mixer/*.c) +HDSPM_OBJ := $(HDSPM_SRC:.c=.o) +HDSPM_TARGET := $(externals_src)/iem/hdspm_mixer/hdspmmixer.$(EXTENSION) + +hdspm_mixer: $(HDSPM_TARGET) + +$(HDSPM_TARGET) : $(HDSPM_OBJ) + $(CC) $(LDFLAGS) -o $(HDSPM_TARGET) $(HDSPM_OBJ) $(LIBS) + $(STRIP) $(HDSPM_TARGET) + chmod 755 $(HDSPM_TARGET) + rm -f -- $(HDSPM_OBJ) + +$(HDSPM_OBJ) : %.o : %.c + $(CC) $(CFLAGS) -o "$*.o" -c "$*.c" + +hdspm_mixer_install: hdspm_mixer + install -d $(DESTDIR)$(objectsdir)/$(HDSPM_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(HDSPM_NAME) \ + --author "Winfried Ritsch" \ + --description "pd-mixer for RME hammerfall devices" \ + --license "GNU GPL" \ + --version "" + install -p $(HDSPM_TARGET) $(DESTDIR)$(objectsdir)/$(HDSPM_NAME) + install -d $(DESTDIR)$(helpdir)/$(HDSPM_NAME) + install -p $(externals_src)/iem/hdspm_mixer/*.pd \ + $(DESTDIR)$(helpdir)/$(HDSPM_NAME) + +hdspm_mixer_clean: + -rm -f -- $(HDSPM_TARGET) + -rm -f -- $(HDSPM_OBJ) + -rm -f -- $(externals_src)/iem/hdspm_mixer/*.bak + -rm -f -- $(externals_src)/iem/hdspm_mixer/*.*~ + + + +#------------------------------------------------------------------------------# +# iemgui +IEMGUI_NAME=iemgui +IEMGUI_SRC := $(wildcard $(externals_src)/iem/iemgui/src/*.c) +IEMGUI_OBJ := $(IEMGUI_SRC:.c=.o) +IEMGUI_TARTMP := $(wildcard $(externals_src)/iem/iemgui/src/*_*.c) +IEMGUI_TARGETS := $(IEMGUI_TARTMP:.c=.$(EXTENSION)) +IEMGUI_FLAGS := -DIEMGUI_SINGLE_OBJ + +iemgui: $(IEMGUI_TARGETS) + +$(IEMGUI_TARGETS) : %.$(EXTENSION) : %.o $(IEMGUI_OBJ) + $(CC) $(LDFLAGS) -o $*.$(EXTENSION) "$*.o" $(externals_src)/iem/iemgui/src/iemgui.o $(LIBS) + $(STRIP) $*.$(EXTENSION) + chmod 755 $*.$(EXTENSION) + rm -f -- "$*.o" + +$(IEMGUI_OBJ) : %.o : %.c + $(CC) $(CFLAGS) $(IEMGUI_FLAGS) -o "$*.o" -c "$*.c" + +iemgui_install: iemgui + install -d $(DESTDIR)$(objectsdir)/$(IEMGUI_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMGUI_NAME) \ + --author "Thomas Musil" \ + --description "some more GUI objects for PD" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMGUI_TARGETS) $(DESTDIR)$(objectsdir)/$(IEMGUI_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMGUI_NAME) + install -p $(externals_src)/iem/iemgui/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMGUI_NAME) + install -p $(externals_src)/iem/iemgui/*.pd \ + $(DESTDIR)$(objectsdir)/$(IEMGUI_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iemgui/READ_ME.txt \ + $(DESTDIR)$(readmesdir)/$(IEMGUI_NAME).txt + +iemgui_clean: + -rm -f -- $(IEMGUI_TARGETS) + -rm -f -- $(IEMGUI_OBJ) + -rm -f -- $(externals_src)/iem/iemgui/src/*.bak + -rm -f -- $(externals_src)/iem/iemgui/src/*.*~ + + + +#------------------------------------------------------------------------------# +# iemxmlrpc +IEMXMLRPC_NAME=iemxmlrpc +IEMXMLRPC_SRC := $(externals_src)/iem/iemxmlrpc/main.cpp +IEMXMLRPC_TARGET := $(externals_src)/iem/iemxmlrpc/xmlrpc.$(EXTENSION) +IEMXMLRPC_FLAGS := -I$(externals_src)/iem/iemxmlrpc/xmlrpc++/src +XMLRPCPP_SRC := $(wildcard $(externals_src)/iem/iemxmlrpc/xmlrpc++/src/*.cpp) + +iemxmlrpc: $(IEMXMLRPC_TARGET) + +$(IEMXMLRPC_TARGET) : $(IEMXMLRPC_SRC:.cpp=.o) $(XMLRPCPP_SRC:.cpp=.o) + $(CXX) $(LDFLAGS) -o $(IEMXMLRPC_TARGET) $(IEMXMLRPC_SRC:.cpp=.o) $(XMLRPCPP_SRC:.cpp=.o) $(LIBS) + $(STRIP) $(IEMXMLRPC_TARGET) + chmod 755 $(IEMXMLRPC_TARGET) + #rm -f -- "$*.o" + +$(IEMXMLRPC_SRC:.cpp=.o) $(XMLRPCPP_SRC:.cpp=.o) : %.o : %.cpp + $(CXX) $(CXXFLAGS) $(IEMXMLRPC_FLAGS) -o "$*.o" -c "$*.cpp" + +iemxmlrpc_install: iemxmlrpc + install -d $(DESTDIR)$(objectsdir)/$(IEMXMLRPC_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(IEMXMLRPC_NAME) \ + --author "Thomas Grill, Winfried Ritsch" \ + --description "XMLRPC external for PD" \ + --license "GNU GPL" \ + --version "" + install -p $(IEMXMLRPC_TARGET) $(DESTDIR)$(objectsdir)/$(IEMXMLRPC_NAME) + install -d $(DESTDIR)$(helpdir)/$(IEMXMLRPC_NAME) + install -p $(externals_src)/iem/iemxmlrpc/*.pd \ + $(DESTDIR)$(helpdir)/$(IEMXMLRPC_NAME) + install -d $(DESTDIR)$(readmesdir) + install -p $(externals_src)/iem/iemxmlrpc/README.txt \ + $(DESTDIR)$(readmesdir)/$(IEMXMLRPC_NAME).txt + install -d $(DESTDIR)$(examplesdir)/$(IEMXMLRPC_NAME) + install -p $(externals_src)/iem/iemxmlrpc/*.pd \ + $(externals_src)/iem/iemxmlrpc/*.py \ + $(DESTDIR)$(examplesdir)/$(IEMXMLRPC_NAME) + +iemxmlrpc_clean: + -rm -f -- $(IEMXMLRPC_TARGET) + -rm -f -- $(externals_src)/iem/iemxmlrpc/xmlrpc++/src/*.o + -rm -f -- $(externals_src)/iem/iemxmlrpc/*.o + -rm -f -- $(externals_src)/iem/iemxmlrpc/*.bak + -rm -f -- $(externals_src)/iem/iemxmlrpc/*.*~ + + + +#------------------------------------------------------------------------------# +# EARPLUG +EARPLUG_NAME=earplug~ +EARPLUG_OBJECTS := $(wildcard $(externals_src)/earplug~/*.c) +earplug: $(EARPLUG_OBJECTS:.c=.$(EXTENSION)) + +earplug_install: earplug + install -d $(DESTDIR)$(objectsdir)/$(EARPLUG_NAME) + $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(EARPLUG_NAME) \ + --author "Pei Xiang" \ + --description "filters for binaural audio spatialization, based on KEMAR impulse measurement" \ + --license "" \ + --version "" + install -p $(EARPLUG_OBJECTS:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(EARPLUG_NAME) + install -p $(externals_src)/earplug~/earplug_data.txt $(DESTDIR)$(objectsdir)/$(EARPLUG_NAME) + install -d $(DESTDIR)$(helpdir)/$(EARPLUG_NAME) + install -p $(externals_src)/earplug~/*-help.pd \ + $(externals_src)/earplug~/*.txt \ + $(DESTDIR)$(helpdir)/$(EARPLUG_NAME) + +earplug_clean: + -rm -f -- $(EARPLUG_OBJECTS:.c=.$(EXTENSION)) + -rm -f -- $(EARPLUG_OBJECTS:.c=.o) + -rm -f -- $(externals_src)/earplug~/*.bak + -rm -f -- $(externals_src)/earplug~/*.*~ + + + +#==============================================================================# +# +# DEVELOPER'S TARGETS +# +#==============================================================================# + +# make the symlinks necessary to simulate the installed environment +devsymlinks: + +TAGS: etags + +etags: + etags $(pd_src)/src/*.[ch] + find $(externals_src) -type f -name '*.[ch]' -exec etags -a '{}' \; + find $(externals_src) -type f -name '*.cc' -exec etags -a '{}' \; + find $(externals_src) -type f -name '*.cpp' -exec etags -a '{}' \; + find $(extensions_src) -type f -name '*.[ch]' -exec etags -a '{}' \; + find /usr/include -type f -name \*.h -exec etags -a '{}' \; + make etags_`uname -s` + +etags_Darwin: + etags -a $(externals_src)/hcs/hid/HID\ Utilities\ Source/*.[ch] + find /System/Library/Frameworks -type f -name \*.h -exec etags -a '{}' \; + find /Library/Frameworks -type f -name \*.h -exec etags -a '{}' \; + find /sw/include -type f -name \*.h -exec etags -a '{}' \; + +etags_Linux: + +etags_MINGW: + find /usr/local/include/ -type f -name \*.h -exec etags -a '{}' \; + + +#==============================================================================# +# +# CLEAN TARGETS +# +#==============================================================================# + +# the destination-specific clean targets are in Makefile.buildlayout +clean: $(patsubst %, %_clean,$(LIB_TARGETS)) + + +distclean: clean cruft_clean + -.cc.o: - g++ $(CPPFLAGS) $(INCLUDES) -o $*.o -c $*.cc +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)" + @echo " " + @echo "Compiling these libs:" + @echo "$(LIB_TARGETS)" -.c.o: - gcc $(CPPFLAGS) $(INCLUDES) -o $*.o -c $*.c -install: - cp -f --remove-destination *.pd $(PD_DIR)/doc/5.reference +.PHONY: all install clean distclean test_locations $(LIB_TARGETS) \ +$(patsubst %, %_install,$(LIB_TARGETS)) $(patsubst %, %_clean,$(LIB_TARGETS)) -clean: - rm -f pix_opencv*.o - rm -f pix_opencv*.$(EXTENSION) -distro: clean all - rm *.o |