conmux: initial import of the Console Multiplexor

Import the Console Multiplexor (CONMUX) subsystem, developed by
the IBM Linux Technology Center.  CONMUX is a console abstractor,
presenting any console with a consistent location, naming and
semantic.  Access to the console and hardreset of the machine is
the same regardless of the underlying access methodology.

Through this abstraction we create a simple and consistent interface
to disparate consoles simplifying programatic use of the console.
This provides for easy integration of console handling into a
test harness.  This allow CONMUX to be used to capture Linux kernel
messages only available on the external system console, as well
as providing a framework for detecting, diagnosing and rescuing
paniced and hung systems.

Signed-off-by: Andy Whitcroft <andyw@uk.ibm.com>
Acked-by: Dustin Kirkland <dustin.kirkland@us.ibm.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@425 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/conmux/Makefile b/conmux/Makefile
new file mode 100644
index 0000000..f78d205
--- /dev/null
+++ b/conmux/Makefile
@@ -0,0 +1,47 @@
+# (C) Copyright IBM Corp. 2004, 2005, 2006
+# Author: Andy Whitcroft <andyw@uk.ibm.com>
+#
+# The Console Multiplexor is released under the GNU Public License V2
+BUILD=
+PREFIX=/usr/local/conmux
+BASE=$(BUILD)$(PREFIX)
+BINS=console conmux-attach
+LIBS=Conmux.pm
+SBIN=conmux-registry conmux start
+
+MODULES=helpers drivers
+
+all::
+
+install::
+	@[ -d $(BASE) ] || mkdir -p $(BASE)
+	@[ -d $(BASE)/bin ] || mkdir $(BASE)/bin
+	@[ -d $(BASE)/lib ] || mkdir $(BASE)/lib
+	@[ -d $(BASE)/sbin ] || mkdir $(BASE)/sbin
+	@[ -d $(BASE)/log ] || mkdir $(BASE)/log
+	@[ -d $(BASE)/etc ] || mkdir $(BASE)/etc
+	for f in $(BINS); do \
+	    rm -f $(BASE)/bin/$$f; \
+	    cp -p $$f $(BASE)/bin/$$f; \
+	    chmod 755 $(BASE)/bin/$$f; \
+	done
+	for f in $(SBIN); do \
+	    rm -f $(BASE)/sbin/$$f; \
+	    cp -p $$f $(BASE)/sbin/$$f; \
+	    chmod 755 $(BASE)/sbin/$$f; \
+	done
+	for f in $(LIBS); do \
+	    rm -f $(BASE)/lib/$$f; \
+	    cp -p $$f $(BASE)/lib/$$f; \
+	    chmod 644 $(BASE)/lib/$$f; \
+	done
+
+release::
+	$(MAKE) BUILD=build install
+	(cd build; tar cf - *) | gzip >conmux.tgz
+	rm -rf build
+
+clean::
+	rm -f conmux.tgz
+
+include $(patsubst %, %/module.mk, $(MODULES))