diff --git a/apps/sam/c/LICENSE b/apps/sam/c/LICENSE
deleted file mode 100644
index ed1daacf69f47fc4fa5196724096f7b47134a66e..0000000000000000000000000000000000000000
--- a/apps/sam/c/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2004, Matthew P. Cashdollar <mpc@innographx.com>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-    * Neither the name of the author nor the names of any contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/apps/sam/c/Makefile.common b/apps/sam/c/Makefile.common
new file mode 100644
index 0000000000000000000000000000000000000000..4668d1d376d9078cae67ea5e3b745cecf3f333e1
--- /dev/null
+++ b/apps/sam/c/Makefile.common
@@ -0,0 +1,26 @@
+#
+# This Makefile contains instructions common to all platforms
+#
+
+
+#
+# Build rules
+#
+
+all: clean depend libsam
+
+depend:
+	$(CC) $(CFLAGS) -MM $(SRCDIR)/*.c > .depend
+
+$(OBJDIR)/%.o: $(SRCDIR)/%.c
+	$(CC) $(CFLAGS) -o $@ -c $<
+
+libsam: $(OBJS)
+	$(AR) rcs $(LIBDIR)/libsam.a $(OBJS)
+
+#
+# Cleanup rules
+#
+
+clean:
+	-$(RM) -f $(LIBDIR)/libsam.a $(OBJDIR)/* .depend
diff --git a/apps/sam/c/Makefile.cygwin b/apps/sam/c/Makefile.cygwin
index df439bf29113634cd5ba3522bbaf675d96f17be4..3ffb2539096bde9ff8fbeb42b3039ff895f36ce5 100644
--- a/apps/sam/c/Makefile.cygwin
+++ b/apps/sam/c/Makefile.cygwin
@@ -3,7 +3,7 @@
 #
 
 #
-# Your operating environment
+# Your operating system
 #
 
 OS = CYGWIN
@@ -23,12 +23,13 @@ SRCDIR = src
 
 AR = ar
 CC = gcc
+RM = rm
 
 #
 # Flags
 #
 
-CFLAGS = -g -march=i486 -O2 -pipe -std=c99 -Wall
+CFLAGS = -g -O2 -pipe -std=c99 -Wall
 CFLAGS += -DOS=$(OS)
 CFLAGS += -I$(INCDIR)
 
@@ -41,25 +42,7 @@ OBJS =	$(OBJDIR)/sam.o \
 		$(OBJDIR)/strl.o
 
 #
-# Build rules
+# Include the make instructions common to all platforms
 #
 
-all: depend libsam
-
-depend:
-	$(CC) $(CFLAGS) -MM $(SRCDIR)/*.c > .depend
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
-	$(CC) $(CFLAGS) -o $@ -c $<
-
-libsam: $(OBJS)
-	$(AR) rcs $(LIBDIR)/libsam.a $(OBJS)
-
-#
-# Cleanup rules
-#
-
-clean:
-	-rm -f $(LIBDIR)/libsam.a $(OBJDIR)/* .depend
-
-tidy: clean
+include Makefile.common
diff --git a/apps/sam/c/Makefile.freebsd b/apps/sam/c/Makefile.freebsd
index 336c6897dc0d02a439be5bbd4d91f8a56783d742..3fdf8f315e801af2d53d3f229f997c5582c8fcee 100644
--- a/apps/sam/c/Makefile.freebsd
+++ b/apps/sam/c/Makefile.freebsd
@@ -1,5 +1,5 @@
 #
-# This Makefile is compatible with GNU Make (gmake) and should work on FreeBSD
+# This Makefile is compatible with GNU Make and should work on FreeBSD
 #
 
 #
@@ -23,6 +23,7 @@ SRCDIR = src
 
 AR = ar
 CC = gcc
+RM = rm
 
 #
 # Flags
@@ -39,25 +40,7 @@ CFLAGS += -I$(INCDIR)
 OBJS =	$(OBJDIR)/sam.o
 
 #
-# Build rules
+# Include the make instructions common to all platforms
 #
 
-all: depend libsam
-
-depend:
-	$(CC) $(CFLAGS) -MM $(SRCDIR)/*.c > .depend
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
-	$(CC) $(CFLAGS) -o $@ -c $<
-
-libsam: $(OBJS)
-	$(AR) rcs $(LIBDIR)/libsam.a $(OBJS)
-
-#
-# Cleanup rules
-#
-
-clean:
-	-rm -f $(LIBDIR)/libsam.a $(OBJDIR)/* .depend
-
-tidy: clean
+include Makefile.common
diff --git a/apps/sam/c/Makefile.linux b/apps/sam/c/Makefile.linux
index dee17be6e8c402cdc1e73224386e7c401fb79986..7eddeed32d115df162147c5c688f03844f2389bc 100644
--- a/apps/sam/c/Makefile.linux
+++ b/apps/sam/c/Makefile.linux
@@ -1,5 +1,5 @@
 #
-# This Makefile is compatible with GNU Make and should work on Linux (generic)
+# This Makefile is compatible with GNU Make and should work on Linux
 #
 
 #
@@ -23,6 +23,7 @@ SRCDIR = src
 
 AR = ar
 CC = gcc
+RM = rm
 
 #
 # Flags
@@ -40,25 +41,7 @@ OBJS =	$(OBJDIR)/sam.o \
 		$(OBJDIR)/strl.o
 
 #
-# Build rules
+# Include the make instructions common to all platforms
 #
 
-all: depend libsam
-
-depend:
-	$(CC) $(CFLAGS) -MM $(SRCDIR)/*.c > .depend
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
-	$(CC) $(CFLAGS) -o $@ -c $<
-
-libsam: $(OBJS)
-	$(AR) rcs $(LIBDIR)/libsam.a $(OBJS)
-
-#
-# Cleanup rules
-#
-
-clean:
-	-rm -f $(LIBDIR)/libsam.a $(OBJDIR)/* .depend
-
-tidy: clean
+include Makefile.common
diff --git a/apps/sam/c/Makefile.mingw b/apps/sam/c/Makefile.mingw
index 4d0a4e571a73a193f7fb345bae27df768c71ba5f..f9c5882cfbe59d44884d69e7741c1fbc33984133 100644
--- a/apps/sam/c/Makefile.mingw
+++ b/apps/sam/c/Makefile.mingw
@@ -23,12 +23,13 @@ SRCDIR = src
 
 AR = C:\Dev-Cpp\bin\ar
 CC = C:\Dev-Cpp\bin\gcc
+RM = C:\Dev-Cpp\bin\rm
 
 #
 # Flags
 #
 
-CFLAGS = -g -march=i486 -O2 -pipe -std=c99 -Wall
+CFLAGS = -g -O2 -pipe -std=c99 -Wall
 CFLAGS += -DOS=$(OS)
 CFLAGS += -I$(INCDIR)
 
@@ -40,25 +41,7 @@ OBJS =	$(OBJDIR)/sam.o \
 		$(OBJDIR)/strl.o
 
 #
-# Build rules
+# Include the make instructions common to all platforms
 #
 
-all: depend libsam
-
-depend:
-	$(CC) $(CFLAGS) -MM $(SRCDIR)/*.c > .depend
-
-$(OBJDIR)/%.o: $(SRCDIR)/%.c
-	$(CC) $(CFLAGS) -o $@ -c $<
-
-libsam: $(OBJS)
-	$(AR) rcs $(LIBDIR)/libsam.a $(OBJS)
-
-#
-# Cleanup rules
-#
-
-clean:
-	-rm -f $(LIBDIR)/libsam.a $(OBJDIR)/* .depend
-
-tidy: clean
+include Makefile.common
diff --git a/apps/sam/c/README b/apps/sam/c/README
new file mode 100644
index 0000000000000000000000000000000000000000..726c471cac0a6af31e9522d307fe6e8d6509f266
--- /dev/null
+++ b/apps/sam/c/README
@@ -0,0 +1 @@
+See the `docs' directory for documentation and license.
diff --git a/apps/sam/c/doc/contact.txt b/apps/sam/c/doc/contact.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ab128171fcdf94a28ebd58fb91d4b9156d48f47a
--- /dev/null
+++ b/apps/sam/c/doc/contact.txt
@@ -0,0 +1,3 @@
+The author is Matthew P. Cashdollar, who can be reached via email at
+mpc@innographx.com.  The official LibSAM distribution site is at
+http://www.cashdollar.org/libsam