diff --recursive --unified --new-file bottlerocket-0.04/README bottlerocket-0.04a/README
--- bottlerocket-0.04/README	Tue Jul  6 20:19:05 1999
+++ bottlerocket-0.04a/README	Sat Jul 10 16:46:43 1999
@@ -9,7 +9,7 @@
 dim/brighten lamps.  It doesn't support any kind of 2-way
 communication, unlike some of the other X10 products.
 
-This is version 0.04.  This incorporates a bunch of code by Ashley Clark
+This is version 0.04a.  This incorporates a bunch of code by Ashley Clark
 (aclark@ghoti.org) for better x10-amh compatability, somewhat cleaner code, 
 multiple device selection and getopt_long support (at least for Linux).
 Auto configuration support added by David Anderson to make it easier to set
@@ -21,10 +21,12 @@
 
 A problem has also been fixed whereby any user with serial port access through
 br could have error/info from bottlerocket output to any device plugged in
-through the transmitter.  However, there's still no way to guarantee a user can't
-cause a modem plugged in through the transmitter to drop carrier.
+through the transmitter.  However, there's still no way to guarantee a user 
+can't cause a modem plugged in through the transmitter to drop carrier.
 
 Thanks to Warner Losh for portability/security info.
+
+Also thanks to Christian Gafton for bug fixes and cleanup in 0.04a.
 
 Version 0.03 started the x10-amh compatability and nicer serial port usage
 as well as the ability to repeat commands, and environment/command line
diff --recursive --unified --new-file bottlerocket-0.04/acconfig.h bottlerocket-0.04a/acconfig.h
--- bottlerocket-0.04/acconfig.h	Wed Dec 31 18:00:00 1969
+++ bottlerocket-0.04a/acconfig.h	Sat Jul 10 16:31:49 1999
@@ -0,0 +1,15 @@
+/*
+ * Do we have getopt_long() ?
+ */
+#undef HAVE_GETOPT_LONG
+
+/*
+ * How about issetugid() ?
+ */
+#undef HAVE_ISSETUGID
+
+/*
+ * Do we want debugging?
+ */
+#undef DEBUG
+
diff --recursive --unified --new-file bottlerocket-0.04/br.c bottlerocket-0.04a/br.c
--- bottlerocket-0.04/br.c	Thu Jul  8 02:07:03 1999
+++ bottlerocket-0.04a/br.c	Sat Jul 10 16:43:48 1999
@@ -1,4 +1,24 @@
-#include <errno.h>
+
+/*
+ *
+ * br (BottleRocket)
+ *
+ * Control software for the X10(R) FireCracker wireless computer
+ * interface kit.
+ *
+ * (c) 1999 Ashley Clark (aclark@ghoti.org) and Tymm Twillman (tymm@acm.org)
+ *  Free Software.  LGPL applies.
+ *  No warranties expressed or implied.
+ *
+ * Have fun with it and if you do anything really cool, send an email and let me
+ * know.
+ *
+ */
+
+#define VERSION "0.04a"
+
+#include "config.h"
+
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <stdio.h>
@@ -10,7 +30,14 @@
 #include <limits.h>
 #include <string.h>
 
-#include "config.h"
+#ifdef HAVE_FEATURES_H
+#include <features.h>
+#endif
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
 #include "br_cmd.h"
 
 #ifdef HAVE_ISSETUGID
@@ -28,7 +55,6 @@
 #include <getopt.h>
 #endif
 
-#define VERSION "0.04"
 #define DIMRANGE 12
 #define MAX_COMMANDS 512
 
@@ -40,24 +66,8 @@
                         && (fd != STDERR_FILENO))
 
 /*
-
-br (BottleRocket)
-
-Control software for the X10(R) FireCracker wireless computer
-interface kit.
-
-(c) 1999 Ashley Clark (aclark@ghoti.org) and Tymm Twillman (tymm@acm.org)
-  Free Software.  LGPL applies.
-  No warranties expressed or implied.
-
-Have fun with it and if you do anything really cool, send an email and let me
-know.
-
-*/
-
-/*
  * Could have device info/commands dynamically allocated, but that's too much
- *  trouble, and even this allows for really really obnoxious command lines.
+ * trouble, and even this allows for really really obnoxious command lines.
  */
 
 typedef struct {
@@ -121,7 +131,7 @@
     fprintf(stderr, "<housecode>\tis a letter between A and P\n");
     fprintf(stderr, "<native cmd>\tis one of ON, OFF, DIM, BRIGHT, "
       "ALL_ON, ALL_OFF,\n");
-    fprintf(stderr, "\t\tLIGHTS_ON or LIGHTS_OFF\n\n");
+    fprintf(stderr, "\t\tLAMPS_ON or LAMPS_OFF\n\n");
     fprintf(stderr, "For native commands, <list> should only be specified "
       "for ON or OFF.\n\n");
 
@@ -315,7 +325,7 @@
         return ALL_LAMPS_OFF;
 
     fprintf(stderr, "%s:  Command must be one of ON, OFF, DIM, BRIGHT, "
-      "ALLON, ALLOFF, LAMPSON or LAMPSOFF.\n", MyName);
+	    "ALL_ON, ALL_OFF, LAMPS_ON or LAMPS_OFF.\n", MyName);
     errno = EINVAL;
 
     return -1;
@@ -634,21 +644,25 @@
 #ifdef HAVE_GETOPT_LONG    
     int opt_index;
     static struct option long_options[] = {
-        {"help", 0, 0, 'h'},
-        {"port", 1, 0, 'x'},
-        {"repeat", 1, 0, 'r'},
-        {"on", 1, 0, 'n'},
-        {"off", 1, 0, 'f'},
-        {"ON", 0, 0, 'N'},
-        {"OFF", 0, 0, 'F'},
-        {"dim", 1, 0, 'd'},
-        {"lamps_on", 0, 0, 'B'},
-        {"lamps_off", 0, 0, 'D'},
-        {"inverse", 0, 0, 'i'},
-        {0, 0, 0, 0}
+        {"help",  	no_argument, 	    	0, 'h'},
+        {"port",  	required_argument, 	0, 'x'},
+        {"repeat",	required_argument, 	0, 'r'},
+        {"on", 		required_argument, 	0, 'n'},
+        {"off", 	required_argument, 	0, 'f'},
+        {"ON", 		no_argument, 		0, 'N'},
+        {"OFF", 	no_argument, 		0, 'F'},
+        {"dim", 	required_argument, 	0, 'd'},
+        {"lamps_on", 	no_argument, 		0, 'B'},
+        {"lamps_off", 	no_argument, 		0, 'D'},
+        {"inverse", 	no_argument, 		0, 'i'},
+	{"house",	required_argument,	0, 'c'},
+	{"verbose",	no_argument,		0, 'v'},
+	{0, 0, 0, 0}
     };
 #endif
 
+#define OPT_STRING	"x:hvr:ic:n:Nf:Fd:BD"
+    
     /*
      * It's possible to do an exec without even passing argv[0];
      *  this is just to make sure we don't make any bad
@@ -680,11 +694,10 @@
     }
     
 #ifdef HAVE_GETOPT_LONG
-    while ((opt = getopt_long(argc, argv, "x:hvr:ivc:n:Nf:Fd:BD",
-      long_options, &opt_index)) != -1) 
+    while ((opt = getopt_long(argc, argv, OPT_STRING, long_options, &opt_index)) != -1) 
     {
 #else
-    while ((opt = getopt(argc, argv, "x:hvr:ivc:n:Nf:Fd:BD")) != -1) {
+    while ((opt = getopt(argc, argv, OPT_STRING)) != -1) {
 #endif        
         switch (opt) {
         case 'x':
@@ -759,7 +772,7 @@
         }
     }
 
-    if (optind - argc) {
+    if (argc > optind) {
         /*
          * Must be using the native BottleRocket command line...
          */
diff --recursive --unified --new-file bottlerocket-0.04/br.c.bak bottlerocket-0.04a/br.c.bak
--- bottlerocket-0.04/br.c.bak	Thu Jul  8 01:16:55 1999
+++ bottlerocket-0.04a/br.c.bak	Wed Dec 31 18:00:00 1969
@@ -1,747 +0,0 @@
-#include <errno.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <limits.h>
-#include <string.h>
-
-#include "config.h"
-#include "br_cmd.h"
-
-#ifdef HAVE_ISSETUGID
-
-/*
- * Thanks to Warner Losh for info on how to do this better
- */
-
-#define ISSETID() (issetugid())
-#else
-#define ISSETID() (getuid() != geteuid() || getgid() != getegid())
-#endif
-
-#ifdef HAVE_GETOPT_LONG
-#include <getopt.h>
-#endif
-
-#define VERSION "0.04"
-#define DIMRANGE 12
-#define MAX_COMMANDS 512
-
-#define HOUSENAME(house) (((house < 0) || (house > 15)) ? '?':"ABCDEFGHIJKLMNOP"[house])
-#define DEVNAME(dev) (((dev < 0) || (dev > 16)) ? 0 : dev + 1)
-#define CINFO_CLR(cinfo) memset(cinfo, 0, sizeof(br_control_info))
-#define SAFE_FILENO(fd) ((fd != STDIN_FILENO) && (fd != STDOUT_FILENO) && (fd != STDERR_FILENO))
-
-/*
-
-br (BottleRocket)
-
-Control software for the X10(R) FireCracker wireless computer
-interface kit.
-
-(c) 1999 Ashley Clark (aclark@ghoti.org) and Tymm Twillman (tymm@acm.org)
-  Free Software.  LGPL applies.
-  No warranties expressed or implied.
-
-Have fun with it and if you do anything really cool, send an email and let me
-know.
-
-*/
-
-/*
- * Could have device info/commands dynamically allocated, but that's too much
- *  trouble, and even this allows for really really obnoxious command lines.
- */
-
-typedef struct {
-    int inverse;
-    int repeat;
-    char *port;
-    int fd;
-    int numcmds;
-    int devs[MAX_COMMANDS];
-    char houses[MAX_COMMANDS];
-    int dimlevels[MAX_COMMANDS];
-    int cmds[MAX_COMMANDS];
-} br_control_info;
-
-int Verbose = 0;
-char *MyName = "br";
-
-void usage()
-{
-	fprintf(stderr, "BottleRocket version %s\n", VERSION);
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Usage: %s [<options>][<housecode>(<list>) <native command> ...]\n\n", MyName);
-	fprintf(stderr, "  Options:\n");
-#ifdef HAVE_GETOPT_LONG
-	fprintf(stderr, "  -v, --verbose\t\t\tadd v's to increase verbosity\n");
-    fprintf(stderr, "  -x, --port=PORT\t\tset port to use\n");
-    fprintf(stderr, "  -c, --house=[A-P]\t\tuse alternate house code (default \"A\")\n");
-    fprintf(stderr, "  -n, --on=LIST\t\t\tturn on devices in LIST\n");
-    fprintf(stderr, "  -f, --off=LIST\t\tturn off devices in LIST\n");
-    fprintf(stderr, "  -N, --ON\t\t\tturn on all devices in housecode\n");
-    fprintf(stderr, "  -F, --OFF\t\t\tturn off all devices in housecode\n");
-    fprintf(stderr, "  -d, --dim=LEVEL[,LIST]\tdim devices in housecode to relative LEVEL\n");
-    fprintf(stderr, "  -B, --lamps_on\t\tturn all lamps in housecode on\n");
-    fprintf(stderr, "  -D, --lamps_off\t\tturn all lamps in housecode off\n");
-    fprintf(stderr, "  -r, --repeat=NUM\t\trepeat commands NUM times (0 = ~ forever)\n");
-    fprintf(stderr, "  -h, --help\t\t\tthis help\n\n");
-#else
-	fprintf(stderr, "  -v\tverbose (add v's to increase verbosity)\n");
-    fprintf(stderr, "  -x\tset port to use\n");
-    fprintf(stderr, "  -c\tuse alternate house code (default \"A\")\n");
-    fprintf(stderr, "  -n\tturn on devices\n");
-    fprintf(stderr, "  -f\tturn off devices\n");
-    fprintf(stderr, "  -N\tturn all devices in housecode on\n");
-    fprintf(stderr, "  -F\tturn all devices in housecode off\n");
-    fprintf(stderr, "  -d\tdim devices in housecode to relative dimlevel\n");
-    fprintf(stderr, "  -B\tturn all lamps in housecode on\n");
-    fprintf(stderr, "  -D\tturn all lamps in housecode off\n");
-    fprintf(stderr, "  -r\trepeat commands <repeats> times (0 basically means don't stop)\n");
-    fprintf(stderr, "  -h\tthis help\n\n");
-#endif
-	fprintf(stderr, "<list>\t\tis a comma separated list of devices (no spaces),\n");
-	fprintf(stderr, "\t\teach ranging from 1 to 16\n"); 	
-    fprintf(stderr, "<dimlevel>\tis an integer from -6 to 6 (0 means no change)\n");
-    fprintf(stderr, "<housecode>\tis a letter between A and P\n");
-    fprintf(stderr, "<native cmd>\tis one of ON, OFF, DIM, BRIGHT, ALL_ON, ALL_OFF,\n");
-    fprintf(stderr, "\t\tLIGHTS_ON or LIGHTS_OFF\n\n");
-    fprintf(stderr, "For native commands, <list> should only be specified for ON or OFF.\n\n");
-
-}
-
-
-int checkimmutableport(char *port_source)
-{
-/*
- * Check to see if the user is really allowed to specify an alternate serial port
- */
-
-    if (!ISSETID())
-        return 0;
-
-    fprintf(stderr, "%s:  You are not authorized to change the X10 device port!\n",
-      MyName);
-    fprintf(stderr, "%s:  Invalid port assignment %s.\n", MyName, port_source);
-
-    errno = EINVAL;
-
-    return -1;
-}
-
-
-int gethouse(char *house)
-{
-/*
- * Grab a house code from the command line
- */
-
-    int c;
-
-
-    c = toupper(house[0]) - 'A';
-    if ((strlen(house) > 1) || (c < 0) || (c > 15)) {
-		fprintf(stderr, "%s:  House code must be in range [A-P]\n", MyName);
-		errno = EINVAL;
-		return -1;
-	}
-
-	return c;
-}
-
-
-int getdim(char *list, int *dim)
-{
-/*
- * Get devices that should be dimmed from the command line, and how
- *  much to dim them
- */	
-	
-	char *end;
-	int dev;
-	int devs = 0;
-	
-	*dim = strtol(list, &end, 0);
-	
-	/*
-	 * May have more dimlevels when I get a chance to play with variable
-	 *  dimming
-	 */
-
-    if (((*end != '\0') && (*end != ',')) || (*dim < -DIMRANGE) || (*dim > DIMRANGE)) {
-        fprintf(stderr, "%s:  For dimming you must specify either just a dim level or "
-          "a comma\n      separated list containing the dim level and the devices to dim.\n", MyName);
-        fprintf(stderr, "%s:  Valid dimlevels are numbers between %d and %d.\n", MyName,
-          -DIMRANGE, DIMRANGE);
-        errno = EINVAL;
-        return -1;
-    }
-
-    list = end;
-
-    while (*list++) {
-        dev = strtol(list, &end, 0);
-
-        if ((dev > 16) || (dev < 1) || ((*end != '\0') && (*end != ','))) {
-            fprintf(stderr, "%s:  Devices must be in the range of 1-16.\n", MyName);
-            errno = EINVAL;
-            return -1;
-        }
-
-        devs |= 1 << (dev - 1);
-
-        list = end;
-    }
-
-    return devs;
-}
-
-
-int getdevs(char *list)
-{
-/*
- * Get a list of devices for an operation to be performed on from
- *  the command line
- */
-
-    int devs = 0;
-    int dev;
-    char *end;
-
-
-    do {
-        dev = strtol(list, &end, 0);
-
-        if ((dev > 16) || (dev < 1) || ((*end != '\0') && (*end != ','))) {
-            fprintf(stderr, "%s:  Devices must be in the range of 1-16\n", MyName);
-            errno = EINVAL;
-            return -1;
-        }
-
-        /*
-         * Set the bit corresponding to the given device
-         */
-
-        devs |= 1 << (dev - 1);
-
-        list = end;
-    } while (*list++); /* Skip the , */
-
-    return devs;
-}
-
-
-int br_getunit(char *arg, int *house, int *devs)
-{
-/*
- * Get units to be accessed from the command line in native BottleRocket style
- */
-
-    if (strlen(arg) < 2) {
-        errno = EINVAL;
-        return -1;
-    }
-
-    if ((*devs = getdevs(arg + 1)) < 0)
-        return -1;
-
-    *(arg + 1) = '\0';
-
-    if ((*house = gethouse(arg)) < 0)
-        return -1;
-
-    return 0;
-}
-
-
-int br_native_getcmd(char *arg)
-{
-/*
- * Convert a native BottleRocket command to the appropriate token
- */
-
-    if (!strcasecmp(arg, "ON"))
-        return ON;
-
-    if (!strcasecmp(arg, "OFF"))
-        return OFF;
-
-    if (!strcasecmp(arg, "DIM"))
-        return DIM;
-
-    if (!strcasecmp(arg, "BRIGHT"))
-        return BRIGHT;
-
-    if (!strcasecmp(arg, "ALL_ON"))
-        return ALL_ON;
-
-    if (!strcasecmp(arg, "ALL_OFF"))
-        return ALL_OFF;
-
-    if (!strcasecmp(arg, "LAMPS_ON"))
-        return ALL_LAMPS_ON;
-
-    if (!strcasecmp(arg, "LAMPS_OFF"))
-        return ALL_LAMPS_OFF;
-
-    fprintf(stderr, "%s:  Command must be one of ON, OFF, DIM, BRIGHT, ALLON, ALLOFF, LAMPSON or LAMPSOFF.\n",
-      MyName);
-    errno = EINVAL;
-
-    return -1;
-}
-
-
-int process_list(int fd, int house, int devs, int cmd)
-{
-/*
- * Process and execute on/off commands on a cluster of devices
- */
-
-	unsigned short unit;
-    int i;
-
-	/* apply cmd to devices in list */
-	
-	for (i = 0; i < 16; i++) {
-	    if (devs & (1 << i)) {
-		    unit = (unsigned char)((house << 4) | i);
-		    if (Verbose)
-			    printf("%s:  Turning %s appliance %c%d\n", MyName,
-			      (cmd == ON) ? "on":"off", HOUSENAME(house), DEVNAME(i));
- 		
- 		    if (x10_br_out(fd, unit, (unsigned char)cmd) < 0)
- 		        return -1;
-	    }
-	}
-	
-	return 0;
-}
-
-
-int process_dim(int fd, int house, int devs, int dim)
-{
-/*
- * Process and execute dimming commands on a housecode or a cluster of
- *  devices
- */
-
-    register int i;
-	int unit = (unsigned char)(house << 4);
-	int cmd = (dim < 0) ? DIM:BRIGHT;
-	int tmpdim;
-
-	
-	dim = (dim < 0) ? -dim:dim;
-	tmpdim = dim;
-	
-	if (!devs) {
-	    if (Verbose)
-	        printf("%s:  %s lamps in house %c by %d.\n", MyName,
-		      (cmd == BRIGHT) ? "Brightening":"Dimming", HOUSENAME(house), dim);
-		for (; tmpdim; tmpdim--) {
-			if (x10_br_out(fd, unit, (unsigned char)cmd) < 0)
-			    return -1;
-		}
-    } else {
-		for (i = 0; i < 16; i++) {
-			if (devs & (1 << i)) {
-				if (Verbose)
-					printf("%s:  %s lamp %c%d by %d.\n", MyName,
-					  (cmd == BRIGHT) ? "Brightening":"Dimming", HOUSENAME(house),
-					  DEVNAME(i), dim);
-				/* Send an ON cmd to select the device this may change later */
-				if (x10_br_out(fd, unit | i, ON) < 0)
-				    return -1;
-				
-				for (; tmpdim > 0; tmpdim--)
-					if (x10_br_out(fd, unit, (unsigned char)cmd) < 0)
-					    return -1;
-				tmpdim = dim;
-			}
-		}
-	}
-	
-	return 0;
-}
-
-int open_port(br_control_info *cinfo)
-{
-/*
- * Open the serial port that a FireCracker device is (we expect) on
- */
-
-	if (Verbose >= 2)
-		printf("%s:  Opening serial port %s.\n", MyName, cinfo->port);
-
-	/*
-	 * Oh, yeah.  Don't need to have it opened O_RDWR for ioctls.  This is safer.
-	 */
-		
-	if ((cinfo->fd = open(cinfo->port, O_RDONLY | O_NONBLOCK)) < 0) {
-		fprintf(stderr, "%s: Error (%s) opening %s.\n", MyName, strerror(errno), cinfo->port);
-		return -1;
-	}
-	
-	/*
-	 * If we end up with a reserved fd, don't mess with it.  Just to make sure.
-	 */
-	
-	if (!SAFE_FILENO(cinfo->fd)) {
-	    close(cinfo->fd);
-	    errno = EBADF;
-	    return -1;
-	}
-
-	return 0;
-}
-
-int close_port(br_control_info *cinfo)
-{
-/*
- * Close the serial port when we're done using it
- */
-
-	if (Verbose >= 2)
-		printf("%s:  Closing serial port.\n", MyName);
-
-    close(cinfo->fd);
-
-    return 0;
-}
-
-
-int addcmd(br_control_info *cinfo, int cmd, int house, int devs, int dimlevel)
-{
-    /*
-     * Add a command, plus devices for it to act on and other info, to the
-     *  list of commands to be executed
-     */
-
-    if (cinfo->numcmds >= MAX_COMMANDS) {
-        fprintf(stderr, "%s:  Too many commands specified.\n", MyName);
-        errno = EINVAL;
-        return -1;
-    }
-
-    cinfo->cmds[cinfo->numcmds] = cmd;
-    cinfo->devs[cinfo->numcmds] = devs;
-    cinfo->dimlevels[cinfo->numcmds] = dimlevel;
-    cinfo->houses[cinfo->numcmds] = house;
-
-    cinfo->numcmds++;
-
-    return 0;
-}
-
-int br_execute(br_control_info *cinfo)
-{
-/*
- * Run through a list of commands and execute them
- */
-
-    register int i;
-    register int repeat = cinfo->repeat;
-    int inverse = cinfo->inverse;
-    int cmd;
-
-    if (Verbose >= 2)
-        printf("%s:  Executing %d commands; repeat = %d, inverse = %d\n", MyName, cinfo->numcmds,
-          repeat, inverse);
-
-    /*
-     * Pete and Repeat go into a store, Pete comes out...
-     */
-
-	for (; repeat > 0; repeat--) {
-	    for (i = 0; i < cinfo->numcmds; i++)
-	    {
-	        cmd = cinfo->cmds[i];
-	        if ((cmd == ON) || (cmd == OFF)) {
-	            cmd = (inverse >= 0) ? cmd : (cmd == OFF) ? ON:OFF;
-	
-	            if (process_list(cinfo->fd, cinfo->houses[i], cinfo->devs[i], cmd) < 0)
-	                return -1;
-	
-	        } else if ((cmd == ALL_ON) || (cmd == ALL_OFF)) {
-	            cmd = (inverse >= 0) ? cmd : (cmd == ALL_OFF) ? ALL_ON:ALL_OFF;
-	
-	            if (x10_br_out(cinfo->fd, cinfo->houses[i] << 4, cmd) < 0)
-	                return -1;
-	
-	        } else if ((cmd == ALL_LAMPS_ON) || (cmd == ALL_LAMPS_OFF)) {
-	            cmd = (inverse >= 0) ? cmd : (cmd == ALL_LAMPS_OFF) ? ALL_LAMPS_ON:ALL_LAMPS_OFF;
-	
-	            if (x10_br_out(cinfo->fd, cinfo->houses[i] << 4, cmd) < 0)
-	                return -1;
-	
-	        } else if (cmd == DIM) {
-			    if (process_dim(cinfo->fd, cinfo->houses[i], cinfo->devs[i],
-			      (inverse >= 0) ? cinfo->dimlevels[i]:-cinfo->dimlevels[i]) < 0)
-			    {
-			        return -1;
-			    }
-	        }
-	    }
-			
-		if (inverse) inverse = 0 - inverse;
-	}
-	
-	return 0;
-}
-
-int native_br(br_control_info *cinfo, int argc, char *argv[], int optind)
-{
-/*
- * Get arguments from the command line in native BottleRocket style
- */
-
-	int cmd;
-	int house = 0;
-	int devs = 0;
-	int i;
-	
-	if (argc - optind < 2) {
-	    usage();
-	    errno = EINVAL;
-	    return -1;
-	}
-
-	/*
-	 * Two arguments at a time; device and command
-	 */
-	
-	for (i = optind; i < argc; i += 2) {		
-	    cmd = br_native_getcmd(argv[i + 1]);
-		
-	    switch(cmd) {
-	        case ON:
-	            if (br_getunit(argv[i], &house, &devs) < 0)
-	                return -1;
-	            if (addcmd(cinfo, ON, house, devs, 0) < 0)
-	                return -1;
-	            break;
-		
-	        case OFF:
-	            if (br_getunit(argv[i], &house, &devs) < 0)
-	                return -1;
-	            if (addcmd(cinfo, OFF, house, devs, 0) < 0)
-	                return -1;
-	            break;
-		
-	        case DIM:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, DIM, house, 0, -1) < 0)
-	                return -1;
-	            break;
-		
-	        case BRIGHT:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, DIM, house, 0, 1) < 0)
-	                return -1;
-	            break;
-	
-	        case ALL_ON:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, ALL_ON, house, 0, 1) < 0)
-	                return -1;
-	            break;
-		
-	        case ALL_OFF:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, ALL_OFF, house, 0, 1) < 0)
-	                return -1;
-	            break;
-		
-	        case ALL_LAMPS_ON:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, ALL_LAMPS_ON, house, 0, 1) < 0)
-	                return -1;
-	            break;
-		
-	        case ALL_LAMPS_OFF:
-	            if ((house = gethouse(argv[i])) < 0)
-	                return -1;
-	            if (addcmd(cinfo, ALL_LAMPS_OFF, house, 0, 1) < 0)
-	                return -1;
-	            break;
-		
-		    default:        /* How the hell did we end up here? */
-                errno = EINVAL;
-	            return -1;
-        }
-    }
-
-    if (i != argc) {
-        errno = EINVAL;
-        return -1;
-    }
-
-    return 0;
-}		
-
-int main(int argc, char **argv)
-{
-    char *port_source = "at compile time";
-    char *tmp_port;
-	int opt;
-	int house = 0;
-	int repeat;
-	int devs;
-	int dimlevel = 0;
-	br_control_info *cinfo = NULL;
-	
-#ifdef HAVE_GETOPT_LONG	
-	int opt_index;
-	static struct option long_options[] = {
-		{"help", 0, 0, 'h'},
-		{"port", 1, 0, 'x'},
-		{"repeat", 1, 0, 'r'},
-		{"on", 1, 0, 'n'},
-		{"off", 1, 0, 'f'},
-		{"ON", 0, 0, 'N'},
-		{"OFF", 0, 0, 'F'},
-		{"dim", 1, 0, 'd'},
-		{"lamps_on", 0, 0, 'B'},
-		{"lamps_off", 0, 0, 'D'},
-		{"inverse", 0, 0, 'i'},
-		{0, 0, 0, 0}
-	};
-#endif
-
-    /*
-     * It's possible to do an exec without even passing argv[0];
-     *  this is just to make sure we don't make any bad
-     *  output decisions without accounting for that
-     */ 	
-	    	
-    if (argc)
-        MyName = argv[0];
-
-	if (argc < 2) {
-		usage();
-		exit(1);
-	}
-	
-    if ((cinfo = malloc(sizeof(br_control_info))) == NULL) {
-	    fprintf(stderr, "%s: Error (%s) allocating memory.\n", MyName, strerror(errno));
-	    exit(errno);
-	}
-	
-	CINFO_CLR(cinfo);
-	cinfo->port = X10_PORTNAME;
-	cinfo->repeat = 1;
-	
-    if ((tmp_port = getenv("X10_PORTNAME"))) {
-        port_source = "in the environment variable X10_PORTNAME";
-        if (!checkimmutableport(port_source))
-            cinfo->port = tmp_port;
-    }
-	
-#ifdef HAVE_GETOPT_LONG
-	while ((opt = getopt_long(argc, argv, "x:hvr:ivc:n:Nf:Fd:BD", long_options, &opt_index)) != -1) {
-#else
-    while ((opt = getopt(argc, argv, "x:hvr:ivc:n:Nf:Fd:BD")) != -1) {
-#endif		
-		switch (opt) {
-		case 'x':
-		    port_source = "on the command line";
-		    if (checkimmutableport(port_source) < 0)
-		        exit(errno);
-		    cinfo->port = optarg;
-		    break;
-		case 'r':
-			repeat = atoi(optarg);
-			if (!repeat && !isdigit(*optarg)) {
-			    fprintf(stderr, "%s:  Invalid repeat value specified.\n", MyName);
-			    exit(EINVAL);
-			}
-			cinfo->repeat = (repeat ? repeat:INT_MAX);
-			break;
-		case 'v':
-			if (Verbose++ == 10)
-			    fprintf(stderr, "\nGet a LIFE already.  I've got enough v's, thanks.\n\n");
-			break;
-		case 'i':
-			cinfo->inverse++;    /* no this isn't documented.  your free gift for reading the source. */
-			break;
-		case 'c':
-		    if ((house = gethouse(optarg)) < 0)
-			    exit(errno);
-			break;
-		case 'n':
-		    if ((devs = getdevs(optarg)) < 0)
-		        exit(errno);
-		    if (addcmd(cinfo, ON, house, devs, 0) < 0)
-		        exit(errno);
-			break;
-	    case 'N':
-	        if (addcmd(cinfo, ALL_ON, house, 0, 0) < 0)
-	            exit(errno);
-	        break;
-		case 'f':
-		    if ((devs = getdevs(optarg)) < 0)
-		        exit(errno);
-		    if (addcmd(cinfo, OFF, house, devs, 0) < 0)
-		        exit(errno);
-			break;
-		case 'F':
-		    if (addcmd(cinfo, ALL_OFF, house, 0, 0) < 0)
-		        exit(errno);
-		    break;
-		case 'd':
-		    if ((devs = getdim(optarg, &dimlevel)) < 0)
-		        exit(errno);
-		    if (addcmd(cinfo, DIM, house, devs, dimlevel) < 0)
-		        exit(errno);
-			break;
-		case 'B':
-		    if (addcmd(cinfo, ALL_LAMPS_ON, house, 0, 0) < 0)
-		        exit(errno);
-		    break;
-		case 'D':
-		    if (addcmd(cinfo, ALL_LAMPS_OFF, house, 0, 0) < 0)
-		        exit(errno);
-		    break;
-		case 'h':
-		    usage();
-		    exit(0);
-		default:
-			usage();
-			exit(EINVAL);
-		}
-	}
-
-	if (optind - argc) {
-	    /*
-	     * Must be using the native BottleRocket command line...
-	     */
-	
-	    if (native_br(cinfo, argc, argv, optind) < 0)
-	        exit(errno);
-    }
-
-    if (open_port(cinfo) < 0)
-        exit(errno);
-
-    if (br_execute(cinfo) < 0)
-        exit(errno);
-        	
-	if (close_port(cinfo) < 0)
-	    exit(errno);
-	
-	free(cinfo);
-
-	return 0;
-}
diff --recursive --unified --new-file bottlerocket-0.04/br_cmd.c bottlerocket-0.04a/br_cmd.c
--- bottlerocket-0.04/br_cmd.c	Fri Jul  9 10:21:22 1999
+++ bottlerocket-0.04a/br_cmd.c	Sat Jul 10 16:35:24 1999
@@ -1,4 +1,15 @@
-#include <errno.h>
+/*
+ *
+ * BottleRocket command handling functions.  Only x10_br_out is available to 
+ * other programs.  Rest are for it's use.
+ *
+ * (c) 1999 Tymm Twillman (tymm@acm.org).  Free Software.  LGPL applies.
+ *  No warranties expressed or implied.
+ *
+ * This is for interfacing with the X10 Dynamite wireless transmitter for X10
+ *  home automation hardware.
+*/
+
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <stdio.h>
@@ -6,21 +17,14 @@
 #include <sys/types.h>
 #include <sys/time.h>
 
-#include "br_cmd.h"
-#include "br_translate.h"
-
-/*
-
-BottleRocket command handling functions.  Only x10_br_out is available to 
-  other programs.  Rest are for it's use.
+#include "config.h"
 
-(c) 1999 Tymm Twillman (tymm@acm.org).  Free Software.  LGPL applies.
-  No warranties expressed or implied.
-
-This is for interfacing with the X10 Dynamite wireless transmitter for X10
-  home automation hardware.
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
 
-*/
+#include "br_cmd.h"
+#include "br_translate.h"
 
 /*
  * If you have problems, try increasing BitWait and Delay.  BitWait is used
diff --recursive --unified --new-file bottlerocket-0.04/br_cmd.c.bak bottlerocket-0.04a/br_cmd.c.bak
--- bottlerocket-0.04/br_cmd.c.bak	Thu Jul  8 01:27:30 1999
+++ bottlerocket-0.04a/br_cmd.c.bak	Wed Dec 31 18:00:00 1969
@@ -1,297 +0,0 @@
-#include <errno.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include "br_cmd.h"
-#include "br_translate.h"
-
-/*
-
-BottleRocket command handling functions.  Only x10_br_out is available to programs.
-  Rest are for it's use.
-
-(c) 1999 Tymm Twillman (tymm@acm.org).  Free Software.  LGPL applies.
-  No warranties expressed or implied.
-
-This is for interfacing with the X10 Dynamite wireless transmitter for the X10
-home automation hardware.
-
-*/
-
-/*
- * If you have problems, try increasing BitWait and Delay.  BitWait is used
- *  for some kludgey spacing between bits sent out, and Delay the number of
- *  microseseconds that output lines are held in "clock" position before and 
- *  after a command is set to make sure that the receiver doesn't get confused. 
- *  These values work for me; doesn't mean they're perfect.
- *
- * Version 0.03: Added HoldLoops to allow spacing before and after commands.
- *   Another good one to play with.  In fact, play with this first.
- */
-
-int BitWait = 4;
-int Delay = 100000;
-int HoldLoops = 5;
-
-/*
- * Other serial port bits that we don't want to touch
- */
-
-/*
- * No multithreading for you.  (gee, that's a limiting factor here)
- */
-
-static int otherbits;
-
-#ifdef SLOW_BUT_RELIABLE_BIT_DELAY
-
-int SlowDelay = 10;   /* Minimum uSec to delay between bits */
-
-static int bit_delay(const int fd)
-{
-    struct timeval tv;
-
-
-    tv.tv_sec = 0;
-    tv.tv_nsec = SlowDelay;
-	
-	/*
-	 * Not expecting any signals, so this should be safe
-	 */
-
-	if (select(0, NULL, NULL, NULL, &tv) < 0) {
-		fprintf(stderr, "Error %d on select.\n", errno);
-		perror("select");
-		return -1;
-	}
-}
-
-#else
-
-static int bit_delay(const int fd)
-{
-
-    int loop;
-    int out;
-
-	/*
-	 * Junk just to make sure that we don't talk faster than it can listen
-	 *  -- most delays have at best 1/100 second resolution on a PC
-	 *  (they ask for preemption); so instead we use port
-	 *  access overhead.  Not pretty, but seems to work...
-	 */
-
-	for (loop = 0; loop < BitWait; loop++) {
-		if (ioctl(fd, TIOCMGET, &out) < 0) {
-		    fprintf(stderr, "Error %d on ioctl.\n", errno);
-		    perror("ioctl");
-            return -1;
-        }
-    }
-
-    return 0;
-}
-#endif
-		
-static int delay()
-{
-	/*
-	 * Before and after a command, we have to wait a bit with DTR/RTS
-	 *  set...
-	 */
-
-	struct timeval tv;
-
-
-	tv.tv_sec = 0;
-	tv.tv_usec = Delay;
-
-	/*
-	 * Not expecting any signals, so this should be safe
-	 */
-
-	if (select(0, NULL, NULL, NULL, &tv) < 0) {
-		fprintf(stderr, "Error %d on select.\n", errno);
-		perror("select");
-		return -1;
-	}
-	
-	return 0;
-}
-
-static int bits_out(const int fd, const int bits)
-{
-	/*
-	 * Send out one command bit; set RTS or DTR (but only one) depending on
-	 *  value.
-	 */
-
-	int out;
-
-
-	out = (bits) ? TIOCM_RTS:TIOCM_DTR;
-	out |= otherbits;
-
-#ifdef DEBUG
-	/*
-	 * I print these things out funny because that's how I started doing
-	 *  it and so too bad if it looks weird.
-	 */
-
-	printf("%d", out >> 1);
-#endif
-
-	/* Set RTS, DTR to desired settings */
-
-	if (ioctl(fd, TIOCMSET, &out) < 0) {
-		fprintf(stderr, "Error %d on ioctl in bits_out.\n", errno);
-		perror("ioctl");
-		return -1;
-	}
-	
-	if (bit_delay(fd) < 0)
-	    return -1;
-	
-	return 0;
-}
-
-static int clock_out(const int fd)
-{
-	/*
-	 * Send out a "clock pulse" -- both RTS and DTR set; used before/after
-	 *  command (long pulse) and between command bits (short)
-	 */
-
-	int out = TIOCM_RTS | TIOCM_DTR;
-
-	
-#ifdef DEBUG
-	printf("%d", out >> 1);
-#endif
-
-	out |= otherbits;
-		
-	if (ioctl(fd, TIOCMSET, &out) < 0) {
-		fprintf(stderr, "Error %d on ioctl in clock_out.\n", errno);
-		perror("ioctl");
-		exit(errno);
-	}
-
-	if (bit_delay(fd) < 0)
-	    return -1;
-	
-	return 0;
-}
-
-
-int x10_br_out(int fd, unsigned char unit, int cmd)
-{
-
-	/*
-	 * Put together the commands to send out.  The basic start and end of
-	 *  each command is the same; just fill in the little bits in the middle
-	 *
-	 * Yeah, it's pretty nasty; I'll probably get around to cleaning this
-	 *  up soon, but until then you just have to suffer.
-	 */
-
-	unsigned char cmd_seq[5] = { 0xd5, 0xaa, 0x00, 0x00, 0xad };
-
-	register int i;
-	register int j;
-	unsigned char byte;
- 	int out;
-	int housecode;
-	int device;
-
-
-	/*
-	 * Make sure to set the numeric part of the device address to 0
-	 *  for dim/bright (they only work per housecode)
-	 */
-	
-	if ((cmd == DIM) || (cmd == BRIGHT))
-	    unit &= 0xf0;
-	
-	/*
-	 * Save current state of bits we don't want to touch in serial
-	 *  register
-	 */
-	
-	if (ioctl(fd, TIOCMGET, &otherbits) < 0) {
-	    fprintf(stderr, "Error %d on ioctl in x10_br_out.\n", errno);
-		perror("ioctl");
-		return -1;
-	}
-	
-	otherbits &= ~(TIOCM_RTS | TIOCM_DTR);
-	
-	/*
-	 * Open with a clock pulse to let the receiver get its wits about 
-	 */
-
-
-	housecode = unit >> 4;
-	device = unit & 0x0f;
-
-	if (cmd > MAX_CMD || cmd < 0)
-		return -1;
-
-	/*
-	 * Slap together the variable part of a command
-	 */
-
-	cmd_seq[2] |= housecode_table[housecode] << 4 | device_table[device][0];
-	cmd_seq[3] |= device_table[device][1] | cmd_table[cmd];
-
-	/*
-	 * Set lines to clock and wait, to make sure receiver is ready
-	 */
-
-	if (clock_out(fd) < 0)
-	    return -1;
-	
-	for (i = 0; i < HoldLoops; i++) {
-    	if (delay() < 0)
-    	    return -1;
-    }
-
-
-	for (j = 0; j < 5; j++) {
-		byte = cmd_seq[j];
-
-#ifdef UGLY_DEBUG
-		printf("sending byte: %02x\n", (unsigned int)byte);
-#endif
-
-		/*
-		 * Roll out the bits, following each one by a "clock".
-		 */
-
-		for (i = 0; i < 8; i++) {
-            out = (byte & 0x80) ? 1:0;
-			byte <<= 1;
-			if ((bits_out(fd, out) < 0) || (clock_out(fd) < 0))
-			    return -1;
-		}
-	}
-
-	/*
-	 * Close with a clock pulse and wait a bit to allow command to complete
-	 */
-
-	if (clock_out(fd) < 0)
-	    return -1;
-	
-	for (i = 0; i < HoldLoops; i++) {
-    	if (delay() < 0)
-    	    return -1;
-    }
-
-
-	return 0;
-}
diff --recursive --unified --new-file bottlerocket-0.04/br_cmd.h bottlerocket-0.04a/br_cmd.h
--- bottlerocket-0.04/br_cmd.h	Thu Jul  8 02:09:34 1999
+++ bottlerocket-0.04a/br_cmd.h	Sat Jul 10 16:42:23 1999
@@ -21,7 +21,7 @@
  */
 
 extern int HoldLoops;
-extern int BitDelay;
+extern int BitWait;
 extern int Delay;
 
 #endif
diff --recursive --unified --new-file bottlerocket-0.04/config.guess bottlerocket-0.04a/config.guess
--- bottlerocket-0.04/config.guess	Wed Dec 31 18:00:00 1969
+++ bottlerocket-0.04a/config.guess	Sat Jul 10 17:01:31 1999
@@ -0,0 +1,997 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Written by Per Bothner <bothner@cygnus.com>.
+# The master version of this file is at the FSF in /home/gd/gnu/lib.
+# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit system type (host/target name).
+#
+# Only a few systems have been added to this list; please add others
+# (but try to keep the structure clean).
+#
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 8/24/94.)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    alpha:OSF1:*:*)
+	if test $UNAME_RELEASE = "V4.0"; then
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+	fi
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	cat <<EOF >$dummy.s
+	.globl main
+	.ent main
+main:
+	.frame \$30,0,\$26,0
+	.prologue 0
+	.long 0x47e03d80 # implver $0
+	lda \$2,259
+	.long 0x47e20c21 # amask $2,$1
+	srl \$1,8,\$2
+	sll \$2,2,\$2
+	sll \$0,3,\$0
+	addl \$1,\$0,\$0
+	addl \$2,\$0,\$0
+	ret \$31,(\$26),1
+	.end main
+EOF
+	${CC-cc} $dummy.s -o $dummy 2>/dev/null
+	if test "$?" = 0 ; then
+		./$dummy
+		case "$?" in
+			7)
+				UNAME_MACHINE="alpha"
+				;;
+			15)
+				UNAME_MACHINE="alphaev5"
+				;;
+			14)
+				UNAME_MACHINE="alphaev56"
+				;;
+			10)
+				UNAME_MACHINE="alphapca56"
+				;;
+			16)
+				UNAME_MACHINE="alphaev6"
+				;;
+		esac
+	fi
+	rm -f $dummy.s $dummy
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
+	exit 0 ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit 0 ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-cbm-sysv4
+	exit 0;;
+    amiga:NetBSD:*:*)
+      echo m68k-cbm-netbsd${UNAME_RELEASE}
+      exit 0 ;;
+    amiga:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit 0 ;;
+    arc64:OpenBSD:*:*)
+	echo mips64el-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    arc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    hkmips:OpenBSD:*:*)
+	echo mips-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    pmax:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sgi:OpenBSD:*:*)
+	echo mips-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit 0;;
+    arm32:NetBSD:*:*)
+	echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	exit 0 ;;
+    SR2?01:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit 0;;
+    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit 0 ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit 0 ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit 0 ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit 0 ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    atari*:NetBSD:*:*)
+	echo m68k-atari-netbsd${UNAME_RELEASE}
+	exit 0 ;;
+    atari*:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sun3*:NetBSD:*:*)
+	echo m68k-sun-netbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sun3*:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mac68k:NetBSD:*:*)
+	echo m68k-apple-netbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mac68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+	echo m88k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit 0 ;;
+    macppc:NetBSD:*:*)
+        echo powerpc-apple-netbsd${UNAME_RELEASE}
+        exit 0 ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit 0 ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    2020:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit 0 ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	${CC-cc} $dummy.c -o $dummy \
+	  && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+	  && rm $dummy.c $dummy && exit 0
+	rm -f $dummy.c $dummy
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit 0 ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit 0 ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit 0 ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit 0 ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
+	if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
+	     -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	fi
+        else echo i586-dg-dgux${UNAME_RELEASE}
+        fi
+ 	exit 0 ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit 0 ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit 0 ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit 0 ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i?86:AIX:*:*)
+	echo i386-ibm-aix
+	exit 0 ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+		rm -f $dummy.c $dummy
+		echo rs6000-ibm-aix3.2.5
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit 0 ;;
+    *:AIX:*:4)
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=4.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit 0 ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit 0 ;;
+    9000/[34678]??:HP-UX:*:*)
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/6?? | 9000/7?? | 9000/80[024] | 9000/8?[136790] | 9000/892 )
+              sed 's/^              //' << EOF >$dummy.c
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+	(${CC-cc} $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+	rm -f $dummy.c $dummy
+	esac
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit 0 ;;
+    3050*:HI-UX:*:*)
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	${CC-cc} $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+	rm -f $dummy.c $dummy
+	echo unknown-hitachi-hiuxwe2
+	exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit 0 ;;
+    *9??*:MPE*:*:*)
+	echo hppa1.0-hp-mpeix
+	exit 0 ;;
+    *9??*:MPE*:*:*)
+	echo hppa1.0-hp-mpeix
+	exit 0 ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit 0 ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit 0 ;;
+    i?86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit 0 ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*X-MP:*:*:*)
+	echo xmp-cray-unicos
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE}
+	exit 0 ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+	exit 0 ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE}
+	exit 0 ;;
+    CRAY*T3E:*:*:*)
+	echo t3e-cray-unicosmk${UNAME_RELEASE}
+	exit 0 ;;
+    CRAY-2:*:*:*)
+	echo cray2-cray-unicos
+        exit 0 ;;
+    F300:UNIX_System_V:*:*)
+        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
+    F301:UNIX_System_V:*:*)
+       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
+       exit 0 ;;
+    hp3[0-9][05]:NetBSD:*:*)
+	echo m68k-hp-netbsd${UNAME_RELEASE}
+	exit 0 ;;
+    hp300:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:FreeBSD:*:*)
+	if test -x /usr/bin/objformat; then
+	    if test "elf" = "`/usr/bin/objformat`"; then
+		echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
+		exit 0
+	    fi
+	fi
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit 0 ;;
+    *:NetBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	exit 0 ;;
+    *:OpenBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	exit 0 ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit 0 ;;
+    i*:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit 0 ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit 0 ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    *:GNU:*:*)
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit 0 ;;
+    *:Linux:*:*)
+#	# uname on the ARM produces all sorts of strangeness, and we need to
+#	# filter it out.
+#	case "$UNAME_MACHINE" in
+#	  armv*)		      UNAME_MACHINE=$UNAME_MACHINE ;;
+#	  arm* | sa110*)	      UNAME_MACHINE="arm" ;;
+#	esac
+
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us.
+	ld_help_string=`ld --help 2>&1`
+	ld_supported_emulations=`echo $ld_help_string \
+			 | sed -ne '/supported emulations:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported emulations: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_emulations" in
+	  i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
+	  i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
+	  sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+	  armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+	  m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+	  elf32arm)   echo "${UNAME_MACHINE}-unknown-linux-gnu"     ; exit 0 ;;
+	  elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
+	esac
+
+	if test "${UNAME_MACHINE}" = "alpha" ; then
+		sed 's/^	//'  <<EOF >$dummy.s
+		.globl main
+		.ent main
+	main:
+		.frame \$30,0,\$26,0
+		.prologue 0
+		.long 0x47e03d80 # implver $0
+		lda \$2,259
+		.long 0x47e20c21 # amask $2,$1
+		srl \$1,8,\$2
+		sll \$2,2,\$2
+		sll \$0,3,\$0
+		addl \$1,\$0,\$0
+		addl \$2,\$0,\$0
+		ret \$31,(\$26),1
+		.end main
+EOF
+		LIBC=""
+		${CC-cc} $dummy.s -o $dummy 2>/dev/null
+		if test "$?" = 0 ; then
+			./$dummy
+			case "$?" in
+			7)
+				UNAME_MACHINE="alpha"
+				;;
+			15)
+				UNAME_MACHINE="alphaev5"
+				;;
+			14)
+				UNAME_MACHINE="alphaev56"
+				;;
+			10)
+				UNAME_MACHINE="alphapca56"
+				;;
+			16)
+				UNAME_MACHINE="alphaev6"
+				;;
+			esac
+
+			objdump --private-headers $dummy | \
+			  grep ld.so.1 > /dev/null
+			if test "$?" = 0 ; then
+				LIBC="libc1"
+			fi
+		fi
+		rm -f $dummy.s $dummy
+		echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
+	elif test "${UNAME_MACHINE}" = "mips" ; then
+	  cat >$dummy.c <<EOF
+#ifdef __cplusplus
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+#ifdef __MIPSEB__
+  printf ("%s-unknown-linux-gnu\n", argv[1]);
+#endif
+#ifdef __MIPSEL__
+  printf ("%sel-unknown-linux-gnu\n", argv[1]);
+#endif
+  return 0;
+}
+EOF
+	  ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+	  rm -f $dummy.c $dummy
+	else
+	  # Either a pre-BFD a.out linker (linux-gnuoldld)
+	  # or one that does not give us useful --help.
+	  # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
+	  # If ld does not provide *any* "supported emulations:"
+	  # that means it is gnuoldld.
+	  echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
+	  test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+
+	  case "${UNAME_MACHINE}" in
+	  i?86)
+	    VENDOR=pc;
+	    ;;
+	  *)
+	    VENDOR=unknown;
+	    ;;
+	  esac
+	  # Determine whether the default compiler is a.out or elf
+	  cat >$dummy.c <<EOF
+#include <features.h>
+#ifdef __cplusplus
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+#ifdef __ELF__
+# ifdef __GLIBC__
+#  if __GLIBC__ >= 2
+    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+#  else
+    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+#  endif
+# else
+   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
+#else
+  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+#endif
+  return 0;
+}
+EOF
+	  ${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+	  rm -f $dummy.c $dummy
+	fi ;;
+# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
+# are messed up and put the nodename in both sysname and nodename.
+    i?86:DYNIX/ptx:4*:*)
+	echo i386-sequent-sysv4
+	exit 0 ;;
+    i?86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit 0 ;;
+    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+	fi
+	exit 0 ;;
+    i?86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit 0 ;;
+    i?86:UnixWare:*:*)
+	if /bin/uname -X 2>/dev/null >/dev/null ; then
+	  (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+	    && UNAME_MACHINE=i586
+	fi
+	echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
+	exit 0 ;;
+    pc:*:*:*)
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit 0 ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit 0 ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit 0 ;;
+    M68*:*:R3V[567]*:*)
+	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m68*:LynxOS:2.*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit 0 ;;
+    i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit 0 ;;
+    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                           # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit 0 ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit 0 ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit 0 ;;
+    news*:NEWS-OS:*:6*)
+	echo mips-sony-newsos6
+	exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit 0 ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit 0 ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+  printf ("vax-dec-bsd\n"); exit (0);
+#else
+  printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+${CC-cc} $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit 0 ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit 0 ;;
+    c34*)
+	echo c34-convex-bsd
+	exit 0 ;;
+    c38*)
+	echo c38-convex-bsd
+	exit 0 ;;
+    c4*)
+	echo c4-convex-bsd
+	exit 0 ;;
+    esac
+fi
+
+#echo '(Unable to guess system type)' 1>&2
+
+exit 1
diff --recursive --unified --new-file bottlerocket-0.04/config.h.in bottlerocket-0.04a/config.h.in
--- bottlerocket-0.04/config.h.in	Mon Jul  5 21:15:39 1999
+++ bottlerocket-0.04a/config.h.in	Sat Jul 10 16:31:49 1999
@@ -9,3 +9,14 @@
  * How about issetugid() ?
  */
 #undef HAVE_ISSETUGID
+
+/*
+ * Do we want debugging?
+ */
+#undef DEBUG
+
+/* Define if you have the <errno.h> header file.  */
+#undef HAVE_ERRNO_H
+
+/* Define if you have the <features.h> header file.  */
+#undef HAVE_FEATURES_H
diff --recursive --unified --new-file bottlerocket-0.04/config.sub bottlerocket-0.04a/config.sub
--- bottlerocket-0.04/config.sub	Wed Dec 31 18:00:00 1969
+++ bottlerocket-0.04a/config.sub	Sat Jul 10 17:01:31 1999
@@ -0,0 +1,979 @@
+#! /bin/sh
+# Configuration validation subroutine script, version 1.1.
+#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+if [ x$1 = x ]
+then
+	echo Configuration name missing. 1>&2
+	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
+	echo "or     $0 ALIAS" 1>&2
+	echo where ALIAS is a recognized configuration type. 1>&2
+	exit 1
+fi
+
+# First pass through any local machine types.
+case $1 in
+	*local*)
+		echo $1
+		exit 0
+		;;
+	*)
+	;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  linux-gnu*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple)
+		os=
+		basic_machine=$1
+		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco5)
+		os=sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+		| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+		| 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
+		| hppa2.0w \
+		| alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
+		| i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
+		| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
+		| mipstx39 | mipstx39el | armv[34][lb] \
+		| sparc | sparclet | sparclite | sparc64 | v850)
+		basic_machine=$basic_machine-unknown
+		;;
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i[34567]86)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+	      | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
+	      | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
+	      | hppa2.0w-* \
+	      | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
+	      | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
+	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+	      | sparc64-* | mips64-* | mipsel-* | armv[34][lb]-*\
+	      | mips64el-* | mips64orion-* | mips64orionel-*  \
+	      | mipstx39-* | mipstx39el-* \
+	      | f301-* | armv*-*)
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-cbm
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-cbm
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-cbm
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	cray2)
+		basic_machine=cray2-cray
+		os=-unicos
+		;;
+	[ctj]90-cray)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		os=-mpeix
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		os=-mpeix
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i[34567]86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i[34567]86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i[34567]86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i[34567]86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	mipsel*-linux*)
+		basic_machine=mipsel-unknown
+		os=-linux-gnu
+		;;
+	mips*-linux*)
+		basic_machine=mips-unknown
+		os=-linux-gnu
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netwinder)
+		basic_machine=armv4l-corel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+        pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pentium | p5 | k5 | nexen)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | k6 | 6x86)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | nexen-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | k6-* | 6x86-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=rs6000-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+	        ;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+	        ;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	xmp)
+		basic_machine=xmp-cray
+		os=-unicos
+		;;
+        xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	mips)
+		if [ x$os = x-linux-gnu ]; then
+			basic_machine=mips-unknown
+		else
+			basic_machine=mips-mips
+		fi
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sparc)
+		basic_machine=sparc-sun
+		;;
+        cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
+	      | -openstep* | -mpeix* | -oskit*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-ns2 )
+	        os=-nextstep2
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-corel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+        *-gould)
+		os=-sysv
+		;;
+        *-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+        *-sgi)
+		os=-irix
+		;;
+        *-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f301-fujitsu)
+		os=-uxpv
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-vxsim* | -vxworks*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
diff --recursive --unified --new-file bottlerocket-0.04/configure bottlerocket-0.04a/configure
--- bottlerocket-0.04/configure	Thu Jul  8 01:47:59 1999
+++ bottlerocket-0.04a/configure	Sat Jul 10 16:31:49 1999
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12 
+# Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -12,7 +12,9 @@
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
 ac_help="$ac_help
---with-x10port=PATH       Specify the serial port for the x10 module"
+  --enable-debug          Enable debugging code"
+ac_help="$ac_help
+  --with-x10port=PATH     Specify the serial port for the x10 module"
 
 # Initialize some variables set by options.
 # The variables have the same names as the options, with
@@ -51,6 +53,7 @@
 # Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
 # Maximum number of lines to put in a shell here document.
 ac_max_here_lines=12
 
@@ -334,7 +337,7 @@
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.12"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -504,9 +507,11 @@
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
+ac_exeext=
+ac_objext=o
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -521,28 +526,19 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:538: checking for $ac_word" >&5
+echo "configure:533: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
@@ -563,16 +559,17 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:567: checking for $ac_word" >&5
+echo "configure:563: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  for ac_dir in $PATH; do
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -607,25 +604,61 @@
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:614: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
   test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:615: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:646: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
-cat > conftest.$ac_ext <<EOF
-#line 625 "configure"
+cat > conftest.$ac_ext << EOF
+
+#line 657 "configure"
 #include "confdefs.h"
+
 main(){return(0);}
 EOF
-if { (eval echo configure:629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -639,18 +672,24 @@
   ac_cv_prog_cc_works=no
 fi
 rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:649: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:688: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:654: checking whether we are using GNU C" >&5
+echo "configure:693: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -659,7 +698,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -670,11 +709,15 @@
 
 if test $ac_cv_prog_gcc = yes; then
   GCC=yes
-  ac_test_CFLAGS="${CFLAGS+set}"
-  ac_save_CFLAGS="$CFLAGS"
-  CFLAGS=
-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:678: checking whether ${CC-cc} accepts -g" >&5
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:721: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -689,17 +732,101 @@
 fi
 
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-  if test "$ac_test_CFLAGS" = set; then
-    CFLAGS="$ac_save_CFLAGS"
-  elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
     CFLAGS="-g -O2"
   else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
     CFLAGS="-O2"
+  else
+    CFLAGS=
   fi
+fi
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:753: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  GCC=
-  test "${CFLAGS+set}" = set || CFLAGS="-g"
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 768 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:774: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 785 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 802 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:808: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
 fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
 
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
@@ -727,28 +854,30 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:735: checking for a BSD compatible install" >&5
+echo "configure:863: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
   for ac_dir in $PATH; do
     # Account for people who put trailing slashes in PATH elements.
     case "$ac_dir/" in
     /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
-      for ac_prog in ginstall installbsd scoinst install; do
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
         if test -f $ac_dir/$ac_prog; then
 	  if test $ac_prog = install &&
             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
-	    # OSF/1 installbsd also uses dspmsg, but is usable.
 	    :
 	  else
 	    ac_cv_path_install="$ac_dir/$ac_prog -c"
@@ -778,8 +907,71 @@
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
+
+
+
+
+
+
+for ac_hdr in features.h errno.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:925: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 930 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+  cat >> confdefs.h <<\EOF
+#define DEBUG 1
+EOF
+
+fi
+
+
+
+
+
 # Check whether --with-x10port or --without-x10port was given.
 if test "${with_x10port+set}" = set; then
   withval="$with_x10port"
@@ -816,70 +1008,9 @@
 fi
 echo "using $X10PORT for x10 port"
 
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:821: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 836 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:842: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 853 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
-fi
-  CPP="$ac_cv_prog_CPP"
-else
-  ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
 
 cat > conftest.$ac_ext <<EOF
-#line 883 "configure"
+#line 1014 "configure"
 #include "confdefs.h"
 #include <getopt.h>
 EOF
@@ -896,7 +1027,7 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 900 "configure"
+#line 1031 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 EOF
@@ -935,7 +1066,7 @@
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
 (set) 2>&1 |
-  case `(ac_space=' '; set) 2>&1` in
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
   *ac_space=\ *)
     # `set' does not quote correctly, so add quotes (double-quote substitution
     # turns \\\\ into \\, and sed turns \\ into \).
@@ -1002,7 +1133,7 @@
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -1022,9 +1153,11 @@
  s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
 $ac_vpsub
 $extrasub
+s%@SHELL@%$SHELL%g
 s%@CFLAGS@%$CFLAGS%g
 s%@CPPFLAGS@%$CPPFLAGS%g
 s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
 s%@DEFS@%$DEFS%g
 s%@LDFLAGS@%$LDFLAGS%g
 s%@LIBS@%$LIBS%g
@@ -1044,9 +1177,10 @@
 s%@infodir@%$infodir%g
 s%@mandir@%$mandir%g
 s%@CC@%$CC%g
+s%@CPP@%$CPP%g
 s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
 s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@CPP@%$CPP%g
 s%@X10PORT@%$X10PORT%g
 
 CEOF
diff --recursive --unified --new-file bottlerocket-0.04/configure.in bottlerocket-0.04a/configure.in
--- bottlerocket-0.04/configure.in	Thu Jul  8 01:32:10 1999
+++ bottlerocket-0.04a/configure.in	Sat Jul 10 16:31:49 1999
@@ -6,6 +6,9 @@
 
 AC_INIT(br_cmd.h)
 AC_CONFIG_HEADER(config.h)
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
 
 dnl Define the function that peeks for getopt_long
 
@@ -20,12 +23,21 @@
 ])
 
 dnl
-dnl And find the port to use.
+dnl Check for some headers
+dnl
+AC_CHECK_HEADERS(features.h errno.h)
+
+
 dnl
+dnl Some other custom arguments
+dnl
+AC_ARG_ENABLE(debug, [  --enable-debug          Enable debugging code], AC_DEFINE(DEBUG))
 
+dnl
+dnl And find the port to use.
+dnl
 AC_DEFUN(BR_FIND_PORT,
-[AC_ARG_WITH(x10port,
---with-x10port=PATH       Specify the serial port for the x10 module,
+[AC_ARG_WITH(x10port, [  --with-x10port=PATH     Specify the serial port for the x10 module],
 [
 case "$withval" in
 	*) X10PORT="$withval" ;;
@@ -59,8 +71,6 @@
 
 dnl Check for important programs, like the C compiler.
 
-AC_PROG_CC
-AC_PROG_INSTALL
 BR_FIND_PORT
 BR_CHECK_GETOPT_LONG
 BR_CHECK_ISSETUGID
