From 1d3a1bc392ec809458a0ea534888e406dd2348cd Mon Sep 17 00:00:00 2001
From: Hans-Christoph Steiner <eighthave@users.sourceforge.net>
Date: Thu, 11 Nov 2010 06:13:38 +0000
Subject: copied over template Makefile and got things building from it

svn path=/trunk/externals/ggee/; revision=14394
---
 LICENSE.txt                     |  31 ++
 Makefile                        | 306 ++++++++++++++++++++
 README.txt                      |  19 ++
 VERSION                         |   2 +-
 changes                         |   3 +
 control/constant-help.pd        |   3 +
 control/qread-help.pd           |   3 +
 control/rl-help.pd              |   3 +
 control/rtout-help.pd           |   3 +
 control/serial_bird-help.pd     |   3 +
 control/serial_ms-help.pd       |   3 +
 control/serial_mt-help.pd       |   3 +
 control/sinh-help.pd            |   3 +
 control/sl-help.pd              |   3 +
 control/unserialize-help.pd     |   3 +
 control/unwonk-help.pd          |   3 +
 experimental/pvocfreq-help.pd   |   3 +
 experimental/tabwrite4~-help.pd |   3 +
 ggee-meta.pd                    |   9 +
 gui/fatom-help.pd               |   2 +
 gui/state-help.pd               |   3 +
 include/g_canvas.h              | 615 ----------------------------------------
 license.txt                     |  31 --
 makefile                        |  26 --
 makefile.sub                    |  42 ---
 25 files changed, 413 insertions(+), 715 deletions(-)
 create mode 100644 LICENSE.txt
 create mode 100644 Makefile
 create mode 100644 README.txt
 create mode 100644 control/constant-help.pd
 create mode 100644 control/qread-help.pd
 create mode 100644 control/rl-help.pd
 create mode 100644 control/rtout-help.pd
 create mode 100644 control/serial_bird-help.pd
 create mode 100644 control/serial_ms-help.pd
 create mode 100644 control/serial_mt-help.pd
 create mode 100644 control/sinh-help.pd
 create mode 100644 control/sl-help.pd
 create mode 100644 control/unserialize-help.pd
 create mode 100644 control/unwonk-help.pd
 create mode 100644 experimental/pvocfreq-help.pd
 create mode 100644 experimental/tabwrite4~-help.pd
 create mode 100644 ggee-meta.pd
 create mode 100644 gui/fatom-help.pd
 create mode 100644 gui/state-help.pd
 delete mode 100644 include/g_canvas.h
 delete mode 100644 license.txt
 delete mode 100644 makefile
 delete mode 100644 makefile.sub

diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..36d724e
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,31 @@
+This software is copyrighted by Guenter Geiger and others.  The following
+terms apply to all files associated with the software unless explicitly
+disclaimed in individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+RESTRICTED RIGHTS: Use, duplication or disclosure by the government
+is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
+of the Rights in Technical Data and Computer Software Clause as DFARS
+252.227-7013 and FAR 52.227-19.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7822f25
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,306 @@
+## Pd library template version 1.0.5
+# For instructions on how to use this template, see:
+#  http://puredata.info/docs/developer/MakefileTemplate
+LIBRARY_NAME = ggee
+
+# add your .c source files, one object per file, to the SOURCES
+# variable, help files will be included automatically
+
+SOURCES = control/constant.c control/rl.c control/serial_ms.c control/sl.c control/getdir.c control/rtout.c control/serial_mt.c control/stripdir.c control/inv.c control/serial_bird.c control/shell.c control/unserialize.c control/qread.c control/serialize.c control/sinh.c control/unwonk.c experimental/fofsynth~.c experimental/tabwrite4~.c experimental/pvocfreq.c filters/bandpass.c filters/highpass.c filters/hlshelf.c filters/lowshelf.c filters/notch.c filters/equalizer.c filters/highshelf.c filters/lowpass.c filters/moog~.c gui/button.c gui/fatom.c gui/image.c gui/sliderh.c gui/ticker.c gui/envgen.c gui/gcanvas.c gui/slider.c gui/state.c gui/toddle.c signal/atan2~.c signal/mixer~.c signal/sfwrite~.c signal/streamin~.c signal/streamout~.c
+
+SOURCES_linux =
+
+# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
+# be included automatically
+PDOBJECTS = 
+
+# example patches and related files, in the 'examples' subfolder
+EXAMPLES = 
+
+# manuals and related files, in the 'manual' subfolder
+MANUAL = 
+
+# if you want to include any other files in the source and binary tarballs,
+# list them here.  This can be anything from header files, test patches,
+# documentation, etc.  README.txt and LICENSE.txt are required and therefore
+# automatically included
+EXTRA_DIST = 
+
+
+
+#------------------------------------------------------------------------------#
+#
+# things you might need to edit if you are using other C libraries
+#
+#------------------------------------------------------------------------------#
+
+CFLAGS = -DPD -I. -I"$(PD_INCLUDE)"/pd -Wall -W -g
+LDFLAGS =  
+LIBS = 
+
+#------------------------------------------------------------------------------#
+#
+# you shouldn't need to edit anything below here, if we did it right :)
+#
+#------------------------------------------------------------------------------#
+
+# get library version from meta file
+LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
+
+CFLAGS += -DVERSION='"$(LIBRARY_VERSION)"'
+
+PD_INCLUDE = $(PD_PATH)/include
+# where to install the library, overridden below depending on platform
+prefix = /usr/local
+libdir = $(prefix)/lib
+pkglibdir = $(libdir)/pd-externals
+objectsdir = $(pkglibdir)
+
+INSTALL = install
+INSTALL_PROGRAM = $(INSTALL) -p -m 644
+INSTALL_DATA = $(INSTALL) -p -m 644
+INSTALL_DIR     = $(INSTALL) -p -m 755 -d
+
+ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \
+	         $(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
+
+DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION)
+
+UNAME := $(shell uname -s)
+ifeq ($(UNAME),Darwin)
+  CPU := $(shell uname -p)
+  ifeq ($(CPU),arm) # iPhone/iPod Touch
+    SOURCES += $(SOURCES_iphoneos)
+    EXTENSION = pd_darwin
+    OS = iphoneos
+    PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+    IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
+    CC=$(IPHONE_BASE)/gcc
+    CPP=$(IPHONE_BASE)/cpp
+    CXX=$(IPHONE_BASE)/g++
+    ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
+    IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
+    OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
+	CFLAGS := $(IPHONE_CFLAGS) $(OPT_CFLAGS) $(CFLAGS)
+    LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
+    LIBS += -lc 
+    STRIP = strip -x
+    DISTBINDIR=$(DISTDIR)-$(OS)
+  else # Mac OS X
+    SOURCES += $(SOURCES_macosx)
+    EXTENSION = pd_darwin
+    OS = macosx
+    PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+    OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
+# build universal 32-bit on 10.4 and 32/64 on newer
+    ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
+      FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
+    else
+      FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
+      SOURCES += $(SOURCES_iphoneos)
+    endif
+    CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
+    LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
+    # if the 'pd' binary exists, check the linking against it to aid with stripping
+    LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
+    LIBS += -lc 
+    STRIP = strip -x
+    DISTBINDIR=$(DISTDIR)-$(OS)
+# install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
+    pkglibdir=$(HOME)/Library/Pd
+  endif
+endif
+ifeq ($(UNAME),Linux)
+  CPU := $(shell uname -m)
+  SOURCES += $(SOURCES_linux)
+  EXTENSION = pd_linux
+  OS = linux
+  PD_PATH = /usr
+  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+  CFLAGS += -fPIC
+  LDFLAGS += -Wl,--export-dynamic  -shared -fPIC
+  LIBS += -lc
+  STRIP = strip --strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+endif
+ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
+  CPU := $(shell uname -m)
+  SOURCES += $(SOURCES_cygwin)
+  EXTENSION = dll
+  OS = cygwin
+  PD_PATH = $(cygpath $(PROGRAMFILES))/pd
+  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+  CFLAGS += 
+  LDFLAGS += -Wl,--export-dynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
+  LIBS += -lc -lpd
+  STRIP = strip --strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)
+endif
+ifeq (MINGW,$(findstring MINGW,$(UNAME)))
+  CPU := $(shell uname -m)
+  SOURCES += $(SOURCES_windows)
+  EXTENSION = dll
+  OS = windows
+  PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd && pwd)
+  OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
+  CFLAGS += -mms-bitfields
+  LDFLAGS += -s -shared -Wl,--enable-auto-import
+  LIBS += -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
+  STRIP = strip --strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)
+endif
+
+# in case somebody manually set the HELPPATCHES above
+HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
+
+CFLAGS += $(OPT_CFLAGS)
+
+
+.PHONY = install libdir_install single_install install-doc install-exec install-examples install-manual clean dist etags $(LIBRARY_NAME)
+
+all: $(SOURCES:.c=.$(EXTENSION))
+
+%.o: %.c
+	$(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
+
+%.$(EXTENSION): %.o
+	$(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o"  $(LIBS)
+	chmod a-x "$*.$(EXTENSION)"
+
+# this links everything into a single binary file
+$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
+	$(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS)
+	chmod a-x $(LIBRARY_NAME).$(EXTENSION)
+
+install: libdir_install
+
+# The meta and help files are explicitly installed to make sure they are
+# actually there.  Those files are not optional, then need to be there.
+libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-examples install-manual
+	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
+		$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	test -z "$(strip $(SOURCES))" || \
+		$(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/*.$(EXTENSION)
+	test -z "$(strip $(PDOBJECTS))" || \
+		$(INSTALL_DATA) $(PDOBJECTS) \
+			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+
+# install library linked as single binary
+single_install: $(LIBRARY_NAME) install-doc install-exec
+	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	$(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
+
+install-doc:
+	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	test -z "$(strip $(SOURCES) $(PDOBJECTS))" || \
+		$(INSTALL_DATA) $(HELPPATCHES) \
+			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	$(INSTALL_DATA) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt
+	$(INSTALL_DATA) LICENSE.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/LICENSE.txt
+
+install-examples:
+	test -z "$(strip $(EXAMPLES))" || \
+		$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \
+		for file in $(EXAMPLES); do \
+			$(INSTALL_DATA) examples/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples; \
+		done
+
+install-manual:
+	test -z "$(strip $(MANUAL))" || \
+		$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual && \
+		for file in $(MANUAL); do \
+			$(INSTALL_DATA) manual/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual; \
+		done
+
+
+clean:
+	-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o)
+	-rm -f -- $(SOURCES:.c=.$(EXTENSION))
+	-rm -f -- $(LIBRARY_NAME).o
+	-rm -f -- $(LIBRARY_NAME).$(EXTENSION)
+
+distclean: clean
+	-rm -f -- $(DISTBINDIR).tar.gz
+	-rm -rf -- $(DISTBINDIR)
+	-rm -f -- $(DISTDIR).tar.gz
+	-rm -rf -- $(DISTDIR)
+	-rm -f -- $(ORIGDIR).tar.gz
+	-rm -rf -- $(ORIGDIR)
+
+
+$(DISTBINDIR):
+	$(INSTALL_DIR) $(DISTBINDIR)
+
+libdir: all $(DISTBINDIR)
+	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTBINDIR)
+	$(INSTALL_DATA) $(SOURCES)  $(DISTBINDIR)
+	$(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
+	test -z "$(strip $(EXTRA_DIST))" || \
+		$(INSTALL_DATA) $(EXTRA_DIST)    $(DISTBINDIR)
+#	tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR)
+
+$(DISTDIR):
+	$(INSTALL_DIR) $(DISTDIR)
+
+$(ORIGDIR):
+	$(INSTALL_DIR) $(ORIGDIR)
+
+dist: $(DISTDIR)
+	$(INSTALL_DATA) Makefile  $(DISTDIR)
+	$(INSTALL_DATA) README.txt $(DISTDIR)
+	$(INSTALL_DATA) LICENSE.txt $(DISTDIR)
+	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTDIR)
+	test -z "$(strip $(ALLSOURCES))" || \
+		$(INSTALL_DATA) $(ALLSOURCES)  $(DISTDIR)
+	test -z "$(strip $(PDOBJECTS))" || \
+		$(INSTALL_DATA) $(PDOBJECTS)  $(DISTDIR)
+	test -z "$(strip $(HELPPATCHES))" || \
+		$(INSTALL_DATA) $(HELPPATCHES) $(DISTDIR)
+	test -z "$(strip $(EXTRA_DIST))" || \
+		$(INSTALL_DATA) $(EXTRA_DIST)    $(DISTDIR)
+	test -z "$(strip $(EXAMPLES))" || \
+		$(INSTALL_DIR) $(DISTDIR)/examples && \
+		for file in $(EXAMPLES); do \
+			$(INSTALL_DATA) examples/$$file $(DISTDIR)/examples; \
+		done
+	test -z "$(strip $(MANUAL))" || \
+		$(INSTALL_DIR) $(DISTDIR)/manual && \
+		for file in $(MANUAL); do \
+			$(INSTALL_DATA) manual/$$file $(DISTDIR)/manual; \
+		done
+	tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR)
+
+# make a Debian source package
+dpkg-source:
+	debclean
+	make distclean dist
+	mv $(DISTDIR) $(ORIGDIR)
+	tar --exclude-vcs -czpf ../$(ORIGDIR).orig.tar.gz $(ORIGDIR)
+	rm -f -- $(DISTDIR).tar.gz
+	rm -rf -- $(DISTDIR) $(ORIGDIR)
+	cd .. && dpkg-source -b $(LIBRARY_NAME)
+
+etags:
+	etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
+
+showsetup:
+	@echo "CFLAGS: $(CFLAGS)"
+	@echo "LDFLAGS: $(LDFLAGS)"
+	@echo "LIBS: $(LIBS)"
+	@echo "PD_INCLUDE: $(PD_INCLUDE)"
+	@echo "PD_PATH: $(PD_PATH)"
+	@echo "objectsdir: $(objectsdir)"
+	@echo "LIBRARY_NAME: $(LIBRARY_NAME)"
+	@echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
+	@echo "SOURCES: $(SOURCES)"
+	@echo "PDOBJECTS: $(PDOBJECTS)"
+	@echo "ALLSOURCES: $(ALLSOURCES)"
+	@echo "UNAME: $(UNAME)"
+	@echo "CPU: $(CPU)"
+	@echo "pkglibdir: $(pkglibdir)"
+	@echo "DISTDIR: $(DISTDIR)"
+	@echo "ORIGDIR: $(ORIGDIR)"
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..393970a
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,19 @@
+
+ggee is a library by Guenter Geiger with five sections: control, experimental,
+filters, gui, and signal.
+ 
+ * objects for controlling things: constant rl serial_ms sl getdir rtout
+   serial_mt stripdir inv serial_bird shell unserialize qread serialize sinh
+   unwonk
+
+ * experimental synths: fofsynth~ tabwrite4~ pvocfreq
+
+ * objects for controlling filters: bandpass highpass hlshelf lowshelf notch
+   equalizer highshelf lowpass moog~
+
+ * GUI objects: button fatom image sliderh ticker envgen gcanvas slider state
+   toddle
+
+ * manipulating signals: atan2~ mixer~ sfwrite~ streamin~ streamout~
+
+Guenter Geiger
diff --git a/VERSION b/VERSION
index 7d385d4..9922215 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.25
+0.26
diff --git a/changes b/changes
index e4a1863..500ab9d 100644
--- a/changes
+++ b/changes
@@ -102,3 +102,6 @@
 0.25 
   - big GUI revival with face lifting
 
+0.26
+  - fixed for packaging for Debian
+
diff --git a/control/constant-help.pd b/control/constant-help.pd
new file mode 100644
index 0000000..af67427
--- /dev/null
+++ b/control/constant-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 constant;
+#X text 54 47 placeholder help patch;
diff --git a/control/qread-help.pd b/control/qread-help.pd
new file mode 100644
index 0000000..d36130d
--- /dev/null
+++ b/control/qread-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 qread;
+#X text 54 47 placeholder help patch;
diff --git a/control/rl-help.pd b/control/rl-help.pd
new file mode 100644
index 0000000..ea99d9a
--- /dev/null
+++ b/control/rl-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 rl;
+#X text 54 47 placeholder help patch;
diff --git a/control/rtout-help.pd b/control/rtout-help.pd
new file mode 100644
index 0000000..216ece3
--- /dev/null
+++ b/control/rtout-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 rtout;
+#X text 54 47 placeholder help patch;
diff --git a/control/serial_bird-help.pd b/control/serial_bird-help.pd
new file mode 100644
index 0000000..9020a76
--- /dev/null
+++ b/control/serial_bird-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 serial_bird;
+#X text 54 47 placeholder help patch;
diff --git a/control/serial_ms-help.pd b/control/serial_ms-help.pd
new file mode 100644
index 0000000..2c64e3e
--- /dev/null
+++ b/control/serial_ms-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 serial_ms;
+#X text 54 47 placeholder help patch;
diff --git a/control/serial_mt-help.pd b/control/serial_mt-help.pd
new file mode 100644
index 0000000..40a9d3b
--- /dev/null
+++ b/control/serial_mt-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 serial_mt;
+#X text 54 47 placeholder help patch;
diff --git a/control/sinh-help.pd b/control/sinh-help.pd
new file mode 100644
index 0000000..9208f05
--- /dev/null
+++ b/control/sinh-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 sinh;
+#X text 54 47 placeholder help patch;
diff --git a/control/sl-help.pd b/control/sl-help.pd
new file mode 100644
index 0000000..2a866f6
--- /dev/null
+++ b/control/sl-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 sl;
+#X text 54 47 placeholder help patch;
diff --git a/control/unserialize-help.pd b/control/unserialize-help.pd
new file mode 100644
index 0000000..5c28a0a
--- /dev/null
+++ b/control/unserialize-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 unserialize;
+#X text 54 47 placeholder help patch;
diff --git a/control/unwonk-help.pd b/control/unwonk-help.pd
new file mode 100644
index 0000000..7371987
--- /dev/null
+++ b/control/unwonk-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 unwonk;
+#X text 54 47 placeholder help patch;
diff --git a/experimental/pvocfreq-help.pd b/experimental/pvocfreq-help.pd
new file mode 100644
index 0000000..a4f0bc6
--- /dev/null
+++ b/experimental/pvocfreq-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 tabwrite4~;
+#X text 54 47 placeholder help patch;
diff --git a/experimental/tabwrite4~-help.pd b/experimental/tabwrite4~-help.pd
new file mode 100644
index 0000000..a4f0bc6
--- /dev/null
+++ b/experimental/tabwrite4~-help.pd
@@ -0,0 +1,3 @@
+#N canvas 1 52 450 300 10;
+#X obj 140 126 tabwrite4~;
+#X text 54 47 placeholder help patch;
diff --git a/ggee-meta.pd b/ggee-meta.pd
new file mode 100644
index 0000000..6d5a06e
--- /dev/null
+++ b/ggee-meta.pd
@@ -0,0 +1,9 @@
+#N canvas 10 10 200 200 10;
+#N canvas 20 20 420 300 META 0;
+#X text 10 10 META this is a prototype of a libdir meta file;
+#X text 10 10 NAME ggee;
+#X text 10 10 AUTHOR Guenter Geiger;
+#X text 10 10 DESCRIPTION ;
+#X text 10 10 LICENSE BSD;
+#X text 10 10 VERSION 0.25;
+#X restore 10 10 pd META;
diff --git a/gui/fatom-help.pd b/gui/fatom-help.pd
new file mode 100644
index 0000000..5459bd9
--- /dev/null
+++ b/gui/fatom-help.pd
@@ -0,0 +1,2 @@
+#N canvas 1 52 450 300 10;
+#X text 80 96 comment;
diff --git a/gui/state-help.pd b/gui/state-help.pd
new file mode 100644
index 0000000..954407a
--- /dev/null
+++ b/gui/state-help.pd
@@ -0,0 +1,3 @@
+#N canvas 523 175 450 300 10;
+#X obj 180 119 state;
+#X text 67 43 any idea for state saving;
diff --git a/include/g_canvas.h b/include/g_canvas.h
deleted file mode 100644
index 0b24d43..0000000
--- a/include/g_canvas.h
+++ /dev/null
@@ -1,615 +0,0 @@
-/* Copyright (c) 1997-1999 Miller Puckette.
-* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
-
-/* this file defines the structure for "glists" and related structures and
-functions.  "Glists" and "canvases" and "graphs" used to be different
-structures until being unified in version 0.35.
-
-A glist occupies its own window if the "gl_havewindow" flag is set.  Its
-appearance on its "parent" or "owner" (if it has one) is as a graph if
-"gl_isgraph" is set, and otherwise as a text box.
-
-A glist is "root" if it has no owner, i.e., a document window.  In this
-case "gl_havewindow" is always set.
-
-We maintain a list of root windows, so that we can traverse the whole
-collection of everything in a Pd process.
-
-If a glist has a window it may still not be "mapped."  Miniaturized
-windows aren't mapped, for example, but a window is also not mapped
-immediately upon creation.  In either case gl_havewindow is true but
-gl_mapped is false.
-
-Closing a non-root window makes it invisible; closing a root destroys it.
-
-A glist that's just a text object on its parent is always "toplevel."  An
-embedded glist can switch back and forth to appear as a toplevel by double-
-clicking on it.  Single-clicking a text box makes the toplevel become visible
-and raises the window it's in.
-
-If a glist shows up as a graph on its parent, the graph is blanked while the
-glist has its own window, even if miniaturized.
-
-*/
-
-/* NOTE: this file describes Pd implementation details which may change
-in future releases.  The public (stable) API is in m_pd.h. */  
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-extern "C" {
-#endif
-
-/* --------------------- geometry ---------------------------- */
-#define IOWIDTH 7       /* width of an inlet/outlet in pixels */
-#define IOMIDDLE ((IOWIDTH-1)/2)
-#define GLIST_DEFGRAPHWIDTH 200
-#define GLIST_DEFGRAPHHEIGHT 140
-/* ----------------------- data ------------------------------- */
-
-typedef struct _updateheader
-{
-    struct _updateheader *upd_next;
-    unsigned int upd_array:1;       /* true if array, false if glist */
-    unsigned int upd_queued:1;      /* true if we're queued */
-} t_updateheader;
-
-    /* types to support glists grabbing mouse motion or keys from parent */
-typedef void (*t_glistmotionfn)(void *z, t_floatarg dx, t_floatarg dy);
-typedef void (*t_glistkeyfn)(void *z, t_floatarg key);
-
-EXTERN_STRUCT _rtext;
-#define t_rtext struct _rtext
-
-EXTERN_STRUCT _gtemplate;
-#define t_gtemplate struct _gtemplate
-
-EXTERN_STRUCT _guiconnect;
-#define t_guiconnect struct _guiconnect
-
-EXTERN_STRUCT _tscalar;
-#define t_tscalar struct _tscalar
-
-EXTERN_STRUCT _canvasenvironment;
-#define t_canvasenvironment struct _canvasenvironment 
-
-EXTERN_STRUCT _fielddesc;
-#define t_fielddesc struct _fielddesc
-
-typedef struct _selection
-{
-    t_gobj *sel_what;
-    struct _selection *sel_next;
-} t_selection;
-
-    /* this structure is instantiated whenever a glist becomes visible. */
-typedef struct _editor
-{
-    t_updateheader e_upd;           /* update header structure */
-    t_selection *e_updlist;         /* list of objects to update */
-    t_rtext *e_rtext;               /* text responder linked list */
-    t_selection *e_selection;       /* head of the selection list */
-    t_rtext *e_textedfor;           /* the rtext if any that we are editing */
-    t_gobj *e_grab;                 /* object being "dragged" */
-    t_glistmotionfn e_motionfn;     /* ... motion callback */
-    t_glistkeyfn e_keyfn;           /* ... keypress callback */
-    t_binbuf *e_connectbuf;         /* connections to deleted objects */
-    t_binbuf *e_deleted;            /* last stuff we deleted */
-    t_guiconnect *e_guiconnect;     /* GUI connection for filtering messages */
-    struct _glist *e_glist;         /* glist which owns this */
-    int e_xwas;                     /* xpos on last mousedown or motion event */
-    int e_ywas;                     /* ypos, similarly */
-    int e_selectline_index1;        /* indices for the selected line if any */
-    int e_selectline_outno;         /* (only valid if e_selectedline is set) */
-    int e_selectline_index2;
-    int e_selectline_inno;
-    t_outconnect *e_selectline_tag;
-    unsigned int e_onmotion: 3;     /* action to take on motion */
-    unsigned int e_lastmoved: 1;    /* one if mouse has moved since click */
-    unsigned int e_textdirty: 1;    /* one if e_textedfor has changed */
-    unsigned int e_selectedline: 1; /* one if a line is selected */
-} t_editor;
-
-#define MA_NONE    0    /* e_onmotion: do nothing on mouse motion */
-#define MA_MOVE    1    /* drag the selection around */
-#define MA_CONNECT 2    /* make a connection */
-#define MA_REGION  3    /* selection region */
-#define MA_PASSOUT 4    /* send on to e_grab */
-#define MA_DRAGTEXT 5   /* drag in text editor to alter selection */
-
-/* editor structure for "garrays".  We don't bother to delete and regenerate
-this structure when the "garray" becomes invisible or visible, although we
-could do so if the structure gets big (like the "editor" above.) */
-    
-typedef struct _arrayvis
-{
-    t_updateheader av_upd;          /* update header structure */
-    t_garray *av_garray;            /* owning structure */    
-} t_arrayvis;
-
-/* the t_tick structure describes where to draw x and y "ticks" for a glist */
-
-typedef struct _tick    /* where to put ticks on x or y axes */
-{
-    float k_point;      /* one point to draw a big tick at */
-    float k_inc;        /* x or y increment per little tick */
-    int k_lperb;        /* little ticks per big; 0 if no ticks to draw */
-} t_tick;
-
-/* the t_glist structure, which describes a list of elements that live on an
-area of a window.
-
-*/
-
-struct _glist
-{  
-    t_object gl_obj;            /* header in case we're a glist */
-    t_gobj *gl_list;            /* the actual data */
-    struct _gstub *gl_stub;     /* safe pointer handler */
-    int gl_valid;               /* incremented when pointers might be stale */
-    struct _glist *gl_owner;    /* parent glist, supercanvas, or 0 if none */
-    int gl_pixwidth;            /* width in pixels (on parent, if a graph) */
-    int gl_pixheight;
-    float gl_x1;                /* bounding rectangle in our own coordinates */
-    float gl_y1;
-    float gl_x2;
-    float gl_y2;
-    int gl_screenx1;            /* screen coordinates when toplevel */
-    int gl_screeny1;
-    int gl_screenx2;
-    int gl_screeny2;
-    int gl_xmargin;                /* origin for GOP rectangle */
-    int gl_ymargin;
-    t_tick gl_xtick;            /* ticks marking X values */    
-    int gl_nxlabels;            /* number of X coordinate labels */
-    t_symbol **gl_xlabel;           /* ... an array to hold them */
-    float gl_xlabely;               /* ... and their Y coordinates */
-    t_tick gl_ytick;            /* same as above for Y ticks and labels */
-    int gl_nylabels;
-    t_symbol **gl_ylabel;
-    float gl_ylabelx;
-    t_editor *gl_editor;        /* editor structure when visible */
-    t_symbol *gl_name;          /* symbol bound here */
-    int gl_font;                /* nominal font size in points, e.g., 10 */
-    struct _glist *gl_next;         /* link in list of toplevels */
-    t_canvasenvironment *gl_env;    /* root canvases and abstractions only */
-    unsigned int gl_havewindow:1;   /* true if we own a window */
-    unsigned int gl_mapped:1;       /* true if, moreover, it's "mapped" */
-    unsigned int gl_dirty:1;        /* (root canvas only:) patch has changed */
-    unsigned int gl_loading:1;      /* am now loading from file */
-    unsigned int gl_willvis:1;      /* make me visible after loading */ 
-    unsigned int gl_edit:1;         /* edit mode */
-    unsigned int gl_isdeleting:1;   /* we're inside glist_delete -- hack! */
-    unsigned int gl_goprect:1;      /* draw rectangle for graph-on-parent */
-    unsigned int gl_isgraph:1;      /* show as graph on parent */
-};
-
-#define gl_gobj gl_obj.te_g
-#define gl_pd gl_gobj.g_pd
-
-/* a data structure to describe a field in a pure datum */
-
-#define DT_FLOAT 0
-#define DT_SYMBOL 1
-#define DT_LIST 2
-#define DT_ARRAY 3
-
-typedef struct _dataslot
-{
-    int ds_type;
-    t_symbol *ds_name;
-    t_symbol *ds_arraytemplate;     /* filled in for arrays only */
-} t_dataslot;
-
-typedef struct _template
-{
-    t_pd t_pdobj;               /* header */
-    struct _gtemplate *t_list;  /* list of "struct"/gtemplate objects */
-    t_symbol *t_sym;            /* name */
-    int t_n;                    /* number of dataslots (fields) */
-    t_dataslot *t_vec;          /* array of dataslots */
-} t_template;
-
-struct _array
-{
-    int a_n;            /* number of elements */
-    int a_elemsize;     /* size in bytes; LATER get this from template */
-    char *a_vec;        /* array of elements */
-    t_symbol *a_templatesym;    /* template for elements */
-    int a_valid;        /* protection against stale pointers into array */
-    t_gpointer a_gp;    /* pointer to scalar or array element we're in */
-    t_gstub *a_stub;    /* stub for pointing into this array */
-};
-
-    /* structure for traversing all the connections in a glist */
-typedef struct _linetraverser
-{
-    t_canvas *tr_x;
-    t_object *tr_ob;
-    int tr_nout;
-    int tr_outno;
-    t_object *tr_ob2;
-    t_outlet *tr_outlet;
-    t_inlet *tr_inlet;
-    int tr_nin;
-    int tr_inno;
-    int tr_x11, tr_y11, tr_x12, tr_y12;
-    int tr_x21, tr_y21, tr_x22, tr_y22;
-    int tr_lx1, tr_ly1, tr_lx2, tr_ly2;
-    t_outconnect *tr_nextoc;
-    int tr_nextoutno;
-} t_linetraverser;
-
-/* function types used to define graphical behavior for gobjs, a bit like X
-widgets.  We don't use Pd methods because Pd's typechecking can't specify the
-types of pointer arguments.  Also it's more convenient this way, since
-every "patchable" object can just get the "text" behaviors. */
-
-        /* Call this to get a gobj's bounding rectangle in pixels */
-typedef void (*t_getrectfn)(t_gobj *x, struct _glist *glist,
-    int *x1, int *y1, int *x2, int *y2);
-        /* and this to displace a gobj: */
-typedef void (*t_displacefn)(t_gobj *x, struct _glist *glist, int dx, int dy);
-        /* change color to show selection: */
-typedef void (*t_selectfn)(t_gobj *x, struct _glist *glist, int state);
-        /* change appearance to show activation/deactivation: */
-typedef void (*t_activatefn)(t_gobj *x, struct _glist *glist, int state);
-        /* warn a gobj it's about to be deleted */
-typedef void (*t_deletefn)(t_gobj *x, struct _glist *glist);
-        /*  making visible or invisible */
-typedef void (*t_visfn)(t_gobj *x, struct _glist *glist, int flag);
-        /* field a mouse click (when not in "edit" mode) */
-typedef int (*t_clickfn)(t_gobj *x, struct _glist *glist,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-        /* ... and later, resizing; getting/setting font or color... */
-
-struct _widgetbehavior
-{
-    t_getrectfn w_getrectfn;
-    t_displacefn w_displacefn;
-    t_selectfn w_selectfn;
-    t_activatefn w_activatefn;
-    t_deletefn w_deletefn;
-    t_visfn w_visfn;
-    t_clickfn w_clickfn;
-};
-
-/* -------- behaviors for scalars defined by objects in template --------- */
-/* these are set by "drawing commands" in g_template.c which add appearance to
-scalars, which live in some other window.  If the scalar is just included
-in a canvas the "parent" is a misnomer.  There is also a text scalar object
-which really does draw the scalar on the parent window; see g_scalar.c. */
-
-/* note how the click function wants the whole scalar, not the "data", so
-doesn't work on array elements... LATER reconsider this */
-
-        /* bounding rectangle: */
-typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, float basex, float basey,
-    int *x1, int *y1, int *x2, int *y2);
-        /* displace it */
-typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, 
-    t_word *data, t_template *tmpl, float basex, float basey,
-    int dx, int dy);
-        /* change color to show selection */
-typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, float basex, float basey,
-    int state);
-        /* change appearance to show activation/deactivation: */
-typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, float basex, float basey,
-    int state);
-        /*  making visible or invisible */
-typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, float basex, float basey,
-    int flag);
-        /*  field a mouse click */
-typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
-    t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap,
-    float basex, float basey,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-
-struct _parentwidgetbehavior
-{
-    t_parentgetrectfn w_parentgetrectfn;
-    t_parentdisplacefn w_parentdisplacefn;
-    t_parentselectfn w_parentselectfn;
-    t_parentactivatefn w_parentactivatefn;
-    t_parentvisfn w_parentvisfn;
-    t_parentclickfn w_parentclickfn;
-};
-
-    /* cursor definitions; used as return value for t_parentclickfn */
-#define CURSOR_RUNMODE_NOTHING 0
-#define CURSOR_RUNMODE_CLICKME 1
-#define CURSOR_RUNMODE_THICKEN 2
-#define CURSOR_RUNMODE_ADDPOINT 3
-#define CURSOR_EDITMODE_NOTHING 4
-#define CURSOR_EDITMODE_CONNECT 5
-#define CURSOR_EDITMODE_DISCONNECT 6
-EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum);
-
-extern t_canvas *canvas_editing;    /* last canvas to start text edting */ 
-extern t_canvas *canvas_whichfind;  /* last canvas we did a find in */ 
-extern t_canvas *canvas_list;       /* list of all root canvases */
-extern t_class *vinlet_class, *voutlet_class;
-extern int glist_valid;         /* incremented when pointers might be stale */
-
-#define PLOTSTYLE_POINTS 0     /* plotting styles for arrays */
-#define PLOTSTYLE_POLY 1
-#define PLOTSTYLE_BEZ 2
-
-/* ------------------- functions on any gobj ----------------------------- */
-EXTERN void gobj_getrect(t_gobj *x, t_glist *owner, int *x1, int *y1,
-    int *x2, int *y2);
-EXTERN void gobj_displace(t_gobj *x, t_glist *owner, int dx, int dy);
-EXTERN void gobj_select(t_gobj *x, t_glist *owner, int state);
-EXTERN void gobj_activate(t_gobj *x, t_glist *owner, int state);
-EXTERN void gobj_delete(t_gobj *x, t_glist *owner);
-EXTERN void gobj_vis(t_gobj *x, t_glist *glist, int flag);
-EXTERN int gobj_click(t_gobj *x, struct _glist *glist,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
-EXTERN void gobj_properties(t_gobj *x, struct _glist *glist);
-EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
-
-/* -------------------- functions on glists --------------------- */
-EXTERN t_glist *glist_new( void);
-EXTERN void glist_init(t_glist *x);
-EXTERN void glist_add(t_glist *x, t_gobj *g);
-EXTERN void glist_cleanup(t_glist *x);
-EXTERN void glist_free(t_glist *x);
-
-EXTERN void glist_clear(t_glist *x);
-EXTERN t_canvas *glist_getcanvas(t_glist *x);
-EXTERN int glist_isselected(t_glist *x, t_gobj *y);
-EXTERN void glist_select(t_glist *x, t_gobj *y);
-EXTERN void glist_deselect(t_glist *x, t_gobj *y);
-EXTERN void glist_noselect(t_glist *x);
-EXTERN void glist_selectall(t_glist *x);
-EXTERN void glist_delete(t_glist *x, t_gobj *y);
-EXTERN void glist_retext(t_glist *x, t_text *y);
-EXTERN void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
-    t_glistkeyfn keyfn, int xpos, int ypos);
-EXTERN int glist_isvisible(t_glist *x);
-EXTERN int glist_istoplevel(t_glist *x);
-EXTERN t_glist *glist_findgraph(t_glist *x);
-EXTERN int glist_getfont(t_glist *x);
-EXTERN void glist_sort(t_glist *canvas);
-EXTERN void glist_read(t_glist *x, t_symbol *filename, t_symbol *format);
-EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
-
-EXTERN float glist_pixelstox(t_glist *x, float xpix);
-EXTERN float glist_pixelstoy(t_glist *x, float ypix);
-EXTERN float glist_xtopixels(t_glist *x, float xval);
-EXTERN float glist_ytopixels(t_glist *x, float yval);
-EXTERN float glist_dpixtodx(t_glist *x, float dxpix);
-EXTERN float glist_dpixtody(t_glist *x, float dypix);
-
-EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
-EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
-EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
-    float x1, float y1, float x2, float y2,
-    float px1, float py1, float px2, float py2);
-EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
-    t_floatarg size, t_floatarg saveit, t_floatarg newgraph);
-EXTERN t_binbuf *glist_writetobinbuf(t_glist *x, int wholething);
-EXTERN int glist_isgraph(t_glist *x);
-EXTERN void glist_redraw(t_glist *x);
-EXTERN void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime,
-    char *tag, int x1, int y1, int x2, int y2);
-EXTERN void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag);
-EXTERN void canvas_create_editor(t_glist *x, int createit);
-void canvas_deletelinesforio(t_canvas *x, t_text *text,
-    t_inlet *inp, t_outlet *outp);
-
-
-/* -------------------- functions on texts ------------------------- */
-EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize);
-EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag,
-    int width, int height, int firsttime);
-EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
-EXTERN int text_xcoord(t_text *x, t_glist *glist);
-EXTERN int text_ycoord(t_text *x, t_glist *glist);
-EXTERN int text_xpix(t_text *x, t_glist *glist);
-EXTERN int text_ypix(t_text *x, t_glist *glist);
-EXTERN int text_shouldvis(t_text *x, t_glist *glist);
-
-/* -------------------- functions on rtexts ------------------------- */
-#define RTEXT_DOWN 1
-#define RTEXT_DRAG 2
-#define RTEXT_DBL 3
-#define RTEXT_SHIFT 4
-
-EXTERN t_rtext *rtext_new(t_glist *glist, t_text *who);
-EXTERN t_rtext *glist_findrtext(t_glist *gl, t_text *who);
-EXTERN void rtext_draw(t_rtext *x);
-EXTERN void rtext_erase(t_rtext *x);
-EXTERN t_rtext *rtext_remove(t_rtext *first, t_rtext *x);
-EXTERN int rtext_height(t_rtext *x);
-EXTERN void rtext_displace(t_rtext *x, int dx, int dy);
-EXTERN void rtext_select(t_rtext *x, int state);
-EXTERN void rtext_activate(t_rtext *x, int state);
-EXTERN void rtext_free(t_rtext *x);
-EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s);
-EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag);
-EXTERN void rtext_retext(t_rtext *x);
-EXTERN int rtext_width(t_rtext *x);
-EXTERN int rtext_height(t_rtext *x);
-EXTERN char *rtext_gettag(t_rtext *x);
-EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize);
-EXTERN void rtext_getseltext(t_rtext *x, char **buf, int *bufsize);
-
-/* -------------------- functions on canvases ------------------------ */
-EXTERN t_class *canvas_class;
-
-EXTERN t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv);
-EXTERN t_symbol *canvas_makebindsym(t_symbol *s);
-EXTERN void canvas_vistext(t_canvas *x, t_text *y);
-EXTERN void canvas_fixlinesfor(t_canvas *x, t_text *text);
-EXTERN void canvas_deletelinesfor(t_canvas *x, t_text *text);
-EXTERN void canvas_stowconnections(t_canvas *x);
-EXTERN void canvas_restoreconnections(t_canvas *x);
-EXTERN void canvas_redraw(t_canvas *x);
-
-EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym);
-EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
-EXTERN t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym);
-EXTERN void canvas_rmoutlet(t_canvas *x, t_outlet *op);
-EXTERN void canvas_redrawallfortemplate(t_template *tmpl, int action);
-EXTERN void canvas_redrawallfortemplatecanvas(t_canvas *x, int action);
-EXTERN void canvas_zapallfortemplate(t_canvas *tmpl);
-EXTERN void canvas_setusedastemplate(t_canvas *x);
-EXTERN t_canvas *canvas_getcurrent(void);
-EXTERN void canvas_setcurrent(t_canvas *x);
-EXTERN void canvas_unsetcurrent(t_canvas *x);
-EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s);
-EXTERN t_canvas *canvas_getrootfor(t_canvas *x);
-EXTERN void canvas_dirty(t_canvas *x, t_int n);
-EXTERN int canvas_getfont(t_canvas *x);
-typedef int (*t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3);
-
-EXTERN t_int *canvas_recurapply(t_canvas *x, t_canvasapply *fn,
-    t_int x1, t_int x2, t_int x3);
-
-EXTERN void canvas_resortinlets(t_canvas *x);
-EXTERN void canvas_resortoutlets(t_canvas *x);
-EXTERN void canvas_free(t_canvas *x);
-EXTERN void canvas_updatewindowlist( void);
-EXTERN void canvas_editmode(t_canvas *x, t_floatarg yesplease);
-EXTERN int canvas_isabstraction(t_canvas *x);
-EXTERN int canvas_istable(t_canvas *x);
-EXTERN int canvas_showtext(t_canvas *x);
-EXTERN void canvas_vis(t_canvas *x, t_floatarg f);
-EXTERN t_canvasenvironment *canvas_getenv(t_canvas *x);
-EXTERN void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir);
-EXTERN void canvas_loadbang(t_canvas *x);
-EXTERN int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
-    int *x1p, int *y1p, int *x2p, int *y2p);
-EXTERN int canvas_setdeleting(t_canvas *x, int flag);
-
-typedef void (*t_undofn)(t_canvas *canvas, void *buf,
-    int action);        /* a function that does UNDO/REDO */
-#define UNDO_FREE 0                     /* free current undo/redo buffer */
-#define UNDO_UNDO 1                     /* undo */
-#define UNDO_REDO 2                     /* redo */
-EXTERN void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf,
-    const char *name);
-EXTERN void canvas_noundo(t_canvas *x);
-EXTERN int canvas_getindex(t_canvas *x, t_gobj *y);
-
-EXTERN void canvas_connect(t_canvas *x,
-    t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
-EXTERN void canvas_disconnect(t_canvas *x,
-    float index1, float outno, float index2, float inno);
-EXTERN int canvas_isconnected (t_canvas *x,
-    t_text *ob1, int n1, t_text *ob2, int n2);
-EXTERN void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy);
-
-
-/* ---- functions on canvasses as objects  --------------------- */
-
-EXTERN void canvas_fattenforscalars(t_canvas *x,
-    int *x1, int *y1, int *x2, int *y2);
-EXTERN void canvas_visforscalars(t_canvas *x, t_glist *glist, int vis);
-EXTERN int canvas_clicksub(t_canvas *x, int xpix, int ypix, int shift,
-    int alt, int dbl, int doit);
-EXTERN t_glist *canvas_getglistonsuper(void);
-
-EXTERN void linetraverser_start(t_linetraverser *t, t_canvas *x);
-EXTERN t_outconnect *linetraverser_next(t_linetraverser *t);
-EXTERN void linetraverser_skipobject(t_linetraverser *t);
-
-/* --------- functions on garrays (graphical arrays) -------------------- */
-
-EXTERN t_template *garray_template(t_garray *x);
-
-/* -------------------- arrays --------------------- */
-EXTERN t_garray *graph_array(t_glist *gl, t_symbol *s, t_symbol *tmpl,
-    t_floatarg f, t_floatarg saveit);
-EXTERN t_array *array_new(t_symbol *templatesym, t_gpointer *parent);
-EXTERN void array_resize(t_array *x, int n);
-EXTERN void array_free(t_array *x);
-
-/* --------------------- gpointers and stubs ---------------- */
-EXTERN t_gstub *gstub_new(t_glist *gl, t_array *a);
-EXTERN void gstub_cutoff(t_gstub *gs);
-EXTERN void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x);
-
-/* --------------------- scalars ------------------------- */
-EXTERN void word_init(t_word *wp, t_template *tmpl, t_gpointer *gp);
-EXTERN void word_restore(t_word *wp, t_template *tmpl,
-    int argc, t_atom *argv);
-EXTERN t_scalar *scalar_new(t_glist *owner,
-    t_symbol *templatesym);
-EXTERN void word_free(t_word *wp, t_template *tmpl);
-EXTERN void scalar_getbasexy(t_scalar *x, float *basex, float *basey);
-EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
-
-/* ------helper routines for "garrays" and "plots" -------------- */
-EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
-    t_symbol *elemtemplatesym,
-    float linewidth, float xloc, float xinc, float yloc, float scalarvis,
-    t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
-    int xpix, int ypix, int shift, int alt, int dbl, int doit);
-
-EXTERN void array_getcoordinate(t_glist *glist,
-    char *elem, int xonset, int yonset, int wonset, int indx,
-    float basex, float basey, float xinc,
-    t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
-    float *xp, float *yp, float *wp);
-
-EXTERN int array_getfields(t_symbol *elemtemplatesym,
-    t_canvas **elemtemplatecanvasp,
-    t_template **elemtemplatep, int *elemsizep,
-    t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, 
-    int *xonsetp, int *yonsetp, int *wonsetp);
-
-/* --------------------- templates ------------------------- */
-EXTERN t_template *template_new(t_symbol *sym, int argc, t_atom *argv);
-EXTERN void template_free(t_template *x);
-EXTERN int template_match(t_template *x1, t_template *x2);
-EXTERN int template_find_field(t_template *x, t_symbol *name, int *p_onset,
-    int *p_type, t_symbol **p_arraytype);
-EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname, t_word *wp,
-    int loud);
-EXTERN void template_setfloat(t_template *x, t_symbol *fieldname, t_word *wp,
-    t_float f, int loud);
-EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_symbol *s, int loud);
-
-EXTERN t_template *gtemplate_get(t_gtemplate *x);
-EXTERN t_template *template_findbyname(t_symbol *s);
-EXTERN t_canvas *template_findcanvas(t_template *tmpl);
-EXTERN void template_notify(t_template *tmpl,
-    t_symbol *s, int argc, t_atom *argv);
-
-EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setfloat(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_float f, int loud);
-EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, int loud);
-EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
-    t_word *wp, t_symbol *s, int loud);
-EXTERN t_float fielddesc_getcoord(t_fielddesc *f, t_template *tmpl,
-    t_word *wp, int loud);
-EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl,
-    t_word *wp, float pix, int loud);
-EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, float val);
-EXTERN float fielddesc_cvtfromcoord(t_fielddesc *f, float coord);
-
-
-/* ----------------------- guiconnects, g_guiconnect.c --------- */
-EXTERN t_guiconnect *guiconnect_new(t_pd *who, t_symbol *sym);
-EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay);
-
-/* ------------- IEMGUI routines used in other g_ files ---------------- */
-EXTERN t_symbol *iemgui_raute2dollar(t_symbol *s);
-EXTERN t_symbol *iemgui_dollar2raute(t_symbol *s);
-
-#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
-}
-#endif
diff --git a/license.txt b/license.txt
deleted file mode 100644
index 36d724e..0000000
--- a/license.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This software is copyrighted by Guenter Geiger and others.  The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-RESTRICTED RIGHTS: Use, duplication or disclosure by the government
-is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
-of the Rights in Technical Data and Computer Software Clause as DFARS
-252.227-7013 and FAR 52.227-19.
diff --git a/makefile b/makefile
deleted file mode 100644
index 903a825..0000000
--- a/makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-VERSION=$(shell cat VERSION)
-
-compile:
-	make -f ../makefile.sub -C control
-	make -f ../makefile.sub -C filters 
-	make -f ../makefile.sub -C gui
-	make -f ../makefile.sub -C signal
-	make -f ../makefile.sub -C experimental
-
-clean:
-	-rm -r ggee-$(VERSION)
-	make -f ../makefile.sub -C control clean
-	make -f ../makefile.sub -C filters clean
-	make -f ../makefile.sub -C gui clean
-	make -f ../makefile.sub -C signal clean
-	make -f ../makefile.sub -C experimental clean
-					
-
-package:
-	-mkdir ggee-$(VERSION)
-	-cp `find . -name "*.pd_linux"` ggee-$(VERSION)
-	-cp `find . -name "*.pd_darwin"` ggee-$(VERSION)
-	-cp `find . -name "*.dll"` ggee-$(VERSION)
-	cp `find . -name "*help.pd"` ggee-$(VERSION)
diff --git a/makefile.sub b/makefile.sub
deleted file mode 100644
index 52a1007..0000000
--- a/makefile.sub
+++ /dev/null
@@ -1,42 +0,0 @@
-prefix=$(DESTDIR)/usr
-
-EXTERNALS = $(shell ls *.c)
-STRIP = strip --strip-unneeded -R .note -R .comment
-
-
-
-linux: $(EXTERNALS:.c=.pd_linux)
-win: $(EXTERNALS:.c=.dll)
-osx: $(EXTERNALS:.c=.pd_darwin)
-
-
-
-.SUFFIXES: .pd_linux .pd_darwin .dll
-
-WARNFLAGS = -Wall -W -Wshadow -Wstrict-prototypes  \
-            -Wno-unused -Wno-parentheses -Wno-switch
-
-CFLAGS + = -fPIC -DPD $(WARNFLAGS)
-
-INCLUDES = -I.. -I../include
-
-# the linux compilation target
-
-%.pd_linux: %.c
-	$(CC) $(CFLAGS) $(INCLUDES) -o "$*.o" -c $*.c
-	gcc -Wl,--export-dynamic  -shared -o "$*.pd_linux" "$*.o" -lc -lm
-	chmod a-x "$*.pd_linux"
-	rm -f "$*.o" 
-
-# the windows mingw target
-
-%.dll: ../src/%.c
-	$(CC) -mms-bitfields $(CFLAGS) $(DEFINES) $(INCLUDE) -o "$*.o" -c "../src/$*.c"
-	gcc -shared -o "$*.dll" "$*.o" $(PDPATH)/bin/pd.dll
-
-strip:
-	$(STRIP) *.pd_linux
-	
-clean:
-	-rm *.pd_linux *~ *.dll *.pd_darwin *.o
-	
-- 
cgit v1.2.1