diff options
author | Frans Meulenbroeks <fransmeulenbroeks@gmail.com> | 2010-10-06 19:09:16 +0200 |
---|---|---|
committer | Frans Meulenbroeks <fransmeulenbroeks@gmail.com> | 2010-10-06 19:09:16 +0200 |
commit | a266b5263d6fa6a86172f2ccd7c6f4b4d23fd1d6 (patch) | |
tree | 7732d2b5abbc867299fa2927531ddbb4a81035a2 /recipes/u-boot | |
parent | 9aedaeda167e1adf065974bf078ce5615a60b38e (diff) | |
download | openembedded-a266b5263d6fa6a86172f2ccd7c6f4b4d23fd1d6.tar.gz |
u-boot : moved unused files to obsolete dir
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/u-boot')
15 files changed, 0 insertions, 17239 deletions
diff --git a/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch b/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch deleted file mode 100644 index c97880a01c..0000000000 --- a/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- git.orig/drivers/video/cfb_console.c 2007-12-27 00:59:35.000000000 -0800 -+++ git/drivers/video/cfb_console.c 2007-12-27 08:23:42.000000000 -0800 -@@ -141,6 +141,14 @@ - #endif - - /*****************************************************************************/ -+/* Defines for the S3C2410 driver */ -+/*****************************************************************************/ -+#ifdef CONFIG_VIDEO_S3C2410 -+/* it actually is little-endian, but the host CPU, too ! */ -+//#define VIDEO_FB_LITTLE_ENDIAN -+#endif -+ -+/*****************************************************************************/ - /* Include video_fb.h after definitions of VIDEO_HW_RECTFILL etc */ - /*****************************************************************************/ - #include <video_fb.h> -@@ -309,6 +317,11 @@ - #define SHORTSWAP32(x) (x) - #endif - -+#ifdef CONFIG_VIDEO_S3C2410 -+#undef SHORTSWAP32 -+#define SHORTSWAP32(x) ((((x) & 0xffff) << 16) | (((x) >> 16) & 0xffff)) -+#endif -+ - #if defined(DEBUG) || defined(DEBUG_CFB_CONSOLE) - #define PRINTD(x) printf(x) - #else diff --git a/recipes/u-boot/files/dfu-second-patch.patch b/recipes/u-boot/files/dfu-second-patch.patch deleted file mode 100644 index be56e88110..0000000000 --- a/recipes/u-boot/files/dfu-second-patch.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 123a795c1f7a3f427672dfba6dfc4d0e5056488b -Author: Diego Dompe <ddompe@Aleph.(none)> -Date: Wed May 6 14:00:21 2009 -0600 - - Fix mappings issues - -diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c -index 2699e0f..bada5e2 100644 ---- a/drivers/serial/usbtty.c -+++ b/drivers/serial/usbtty.c -@@ -50,7 +50,7 @@ - * Defines - */ - #define NUM_CONFIGS 1 --#define MAX_INTERFACES 2 -+#define MAX_INTERFACES 3 - #define NUM_ENDPOINTS 3 - #define ACM_TX_ENDPOINT 3 - #define ACM_RX_ENDPOINT 2 -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 0086618..a97d232 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -58,7 +58,7 @@ - */ - #define CONFIG_ENV_SIZE SZ_128K /* Total Size Environment */ - /* Sector */ --#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_128K) -+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_128K + 0x10000) - #define CONFIG_SYS_GBL_DATA_SIZE 128 /* bytes reserved for */ - /* initial data */ - -@@ -170,7 +170,8 @@ - - #define CONFIG_JFFS2_NAND - #define CONFIG_JFFS2_CMDLINE --#define MTDPARTS_DEFAULT "mtdparts=nand0:32k(x-loader),2400k(u-boot),128k(u-boot_env),4096(kernel),-(fs)" -+#define MTDIDS_DEFAULT "nand0=omapnand" -+#define MTDPARTS_DEFAULT "mtdparts=omapnand:512k(x-loader),1920k(u-boot),128k(u-boot_env),4096k(kernel),-(fs)" - - /* Environment information */ - #define CONFIG_BOOTDELAY 10 -@@ -199,6 +200,7 @@ - "run nandargs; " \ - "nboot kernel; " \ - "bootm ${loadaddr}\0" \ -+ "mtdparts=omapnand:512k(x-loader),1920k(u-boot),128k(u-boot_env),4096k(kernel),-(fs)\0" \ - "usbtty=cdc_acm\0"\ - "stdout=serial,usbtty\0" \ - "stdin=serial,usbtty\0" \ -diff --git a/tools/dfu-util/configure b/tools/dfu-util/configure -old mode 100644 -new mode 100755 diff --git a/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch b/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch deleted file mode 100644 index 98b84430ad..0000000000 --- a/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- git.orig/fs/ext2/ext2fs.c 2007-12-13 23:16:13.000000000 -0800 -+++ git/fs/ext2/ext2fs.c 2007-12-13 23:16:41.000000000 -0800 -@@ -472,7 +472,7 @@ - return (0); - } - if (dirent.namelen != 0) { -- char filename[dirent.namelen + 1]; -+ char filename[256]; - ext2fs_node_t fdiro; - int type = FILETYPE_UNKNOWN; - diff --git a/recipes/u-boot/files/omap-usb-dev-dfu.patch b/recipes/u-boot/files/omap-usb-dev-dfu.patch deleted file mode 100644 index f4a8d08d9f..0000000000 --- a/recipes/u-boot/files/omap-usb-dev-dfu.patch +++ /dev/null @@ -1,14478 +0,0 @@ -commit 988a83b84142fccb850b82a6cd14b2b4979f1720 -Author: Diego Dompe <ddompe@Aleph.(none)> -Date: Fri May 1 16:51:21 2009 -0600 - - First pass of porting the DFU patches - -diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c -index 2624e6f..2699e0f 100644 ---- a/drivers/serial/usbtty.c -+++ b/drivers/serial/usbtty.c -@@ -28,6 +28,8 @@ - #include "usbtty.h" - #include "usb_cdc_acm.h" - #include "usbdescriptors.h" -+#include <usb_dfu_descriptors.h> -+#include <usb_dfu.h> - - #ifdef DEBUG - #define TTYDBG(fmt,args...)\ -@@ -101,7 +103,7 @@ extern struct usb_string_descriptor **usb_strings; - static unsigned short rx_endpoint = 0; - static unsigned short tx_endpoint = 0; - static unsigned short interface_count = 0; --static struct usb_string_descriptor *usbtty_string_table[STR_COUNT]; -+static struct usb_string_descriptor *usbtty_string_table[NUM_STRINGS]; - - /* USB Descriptor Strings */ - static u8 wstrLang[4] = {4,USB_DT_STRING,0x9,0x4}; -@@ -151,6 +153,10 @@ struct acm_config_desc { - /* Slave Interface */ - struct usb_interface_descriptor data_class_interface; - struct usb_endpoint_descriptor data_endpoints[NUM_ENDPOINTS-1]; -+#ifdef CONFIG_USBD_DFU -+ struct usb_interface_descriptor uif_dfu; -+ struct usb_dfu_func_descriptor func_dfu; -+#endif - } __attribute__((packed)); - - static struct acm_config_desc acm_configuration_descriptors[NUM_CONFIGS] = { -@@ -161,7 +167,11 @@ static struct acm_config_desc acm_configuration_descriptors[NUM_CONFIGS] = { - .bDescriptorType = USB_DT_CONFIG, - .wTotalLength = - cpu_to_le16(sizeof(struct acm_config_desc)), -- .bNumInterfaces = NUM_ACM_INTERFACES, -+#ifdef CONFIG_USBD_DFU -+ .bNumInterfaces = NUM_ACM_INTERFACES +1, -+#else -+ .bNumInterfaces = NUM_ACM_INTERFACES, -+#endif - .bConfigurationValue = 1, - .iConfiguration = STR_CONFIG, - .bmAttributes = -@@ -260,6 +270,11 @@ static struct acm_config_desc acm_configuration_descriptors[NUM_CONFIGS] = { - .bInterval = 0xFF, - }, - }, -+#ifdef CONFIG_USBD_DFU -+ /* Interface 3 */ -+ .uif_dfu = DFU_RT_IF_DESC, -+ .func_dfu = DFU_FUNC_DESC, -+#endif - }, - }; - -@@ -370,7 +385,7 @@ static int fill_buffer (circbuf_t * buf); - void usbtty_poll (void); - - /* utility function for converting char* to wide string used by USB */ --static void str2wide (char *str, u16 * wide) -+void str2wide (char *str, u16 * wide) - { - int i; - for (i = 0; i < strlen (str) && str[i]; i++){ -@@ -639,6 +654,9 @@ static void usbtty_init_instances (void) - device_instance->bus = bus_instance; - device_instance->configurations = NUM_CONFIGS; - device_instance->configuration_instance_array = config_instance; -+#ifdef CONFIG_USBD_DFU -+ dfu_init_instance(device_instance); -+#endif - - /* initialize bus instance */ - memset (bus_instance, 0, sizeof (struct usb_bus_instance)); -@@ -759,7 +777,11 @@ static void usbtty_init_terminal_type(short type) - &acm_configuration_descriptors; - - /* Interface count */ -+#ifdef CONFIG_USBD_DFU -+ interface_count = NUM_ACM_INTERFACES + 1; -+#else - interface_count = NUM_ACM_INTERFACES; -+#endif - break; - - /* BULK IN/OUT & Default */ -diff --git a/drivers/serial/usbtty.h b/drivers/serial/usbtty.h -index 35a5e9e..dc502df 100644 ---- a/drivers/serial/usbtty.h -+++ b/drivers/serial/usbtty.h -@@ -80,4 +80,10 @@ - #define STR_CTRL_INTERFACE 0x06 - #define STR_COUNT 0x07 - -+#ifdef CONFIG_USBD_DFU -+#define NUM_STRINGS DFU_STR_COUNT -+#else -+#define NUM_STRINGS STR_COUNT -+#endif -+ - #endif -diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile -index ab98ac7..16ce383 100644 ---- a/drivers/usb/Makefile -+++ b/drivers/usb/Makefile -@@ -50,6 +50,7 @@ COBJS-$(CONFIG_OMAP1610) += usbdcore_omap1510.o - COBJS-$(CONFIG_MPC885_FAMILY) += usbdcore_mpc8xx.o - COBJS-$(CONFIG_MUSB) += usbdcore_musb.o - COBJS-$(CONFIG_TWL4030_USB) += twl4030_usb.o -+COBJS-$(CONFIG_USBD_DFU) += usbdfu.o - endif - - COBJS := $(COBJS-y) -diff --git a/drivers/usb/usbdcore.c b/drivers/usb/usbdcore.c -index 53ed669..f2ac755 100644 ---- a/drivers/usb/usbdcore.c -+++ b/drivers/usb/usbdcore.c -@@ -31,6 +31,7 @@ - - #include <malloc.h> - #include "usbdcore.h" -+#include <usb_dfu.h> - - #define MAX_INTERFACES 2 - -@@ -209,6 +210,10 @@ struct usb_alternate_instance *usbd_device_alternate_instance (struct usb_device - */ - struct usb_device_descriptor *usbd_device_device_descriptor (struct usb_device_instance *device, int port) - { -+#ifdef CONFIG_USBD_DFU -+ if (device->dfu_state != DFU_STATE_appIDLE) -+ return device->dfu_dev_desc; -+#endif - return (device->device_descriptor); - } - -@@ -229,6 +234,10 @@ struct usb_configuration_descriptor *usbd_device_configuration_descriptor (struc - if (!(configuration_instance = usbd_device_configuration_instance (device, port, configuration))) { - return NULL; - } -+#ifdef CONFIG_USBD_DFU -+ if (device->dfu_state != DFU_STATE_appIDLE) -+ return (&device->dfu_cfg_desc->ucfg); -+#endif - return (configuration_instance->configuration_descriptor); - } - -@@ -250,6 +259,13 @@ struct usb_interface_descriptor *usbd_device_interface_descriptor (struct usb_de - if (!(interface_instance = usbd_device_interface_instance (device, port, configuration, interface))) { - return NULL; - } -+#ifdef CONFIG_USBD_DFU -+ if (device->dfu_state != DFU_STATE_appIDLE) { -+ if (alternate < 0 || alternate >= DFU_NUM_ALTERNATES) -+ return NULL; -+ return &device->dfu_cfg_desc->uif[alternate]; -+ } -+#endif - if ((alternate < 0) || (alternate >= interface_instance->alternates)) { - return NULL; - } -@@ -622,6 +638,12 @@ void usbd_device_event_irq (struct usb_device_instance *device, usb_device_event - case DEVICE_RESET: - device->device_state = STATE_DEFAULT; - device->address = 0; -+#ifdef CONFIG_USBD_DFU -+ if (device->dfu_state == DFU_STATE_appDETACH) { -+ debug("DFU SWITCH\n"); -+ device->dfu_state = DFU_STATE_dfuIDLE; -+ } -+#endif - break; - - case DEVICE_ADDRESS_ASSIGNED: -@@ -680,4 +702,7 @@ void usbd_device_event_irq (struct usb_device_instance *device, usb_device_event - /* usbdbg("calling device->event"); */ - device->event(device, event, data); - } -+#ifdef CONFIG_USBD_DFU -+ dfu_event(device, event, data); -+#endif - } -diff --git a/drivers/usb/usbdcore_ep0.c b/drivers/usb/usbdcore_ep0.c -index f6e017d..a916bee 100644 ---- a/drivers/usb/usbdcore_ep0.c -+++ b/drivers/usb/usbdcore_ep0.c -@@ -52,6 +52,9 @@ - - #include <common.h> - #include "usbdcore.h" -+#ifdef CONFIG_USBD_DFU -+#include <usb_dfu.h> -+#endif - - #if 0 - #define dbg_ep0(lvl,fmt,args...) serial_printf("[%s] %s:%d: "fmt"\n",__FILE__,__FUNCTION__,__LINE__,##args) -@@ -224,6 +227,7 @@ static int ep0_get_descriptor (struct usb_device_instance *device, - - case USB_DESCRIPTOR_TYPE_CONFIGURATION: - { -+ int bNumInterface; - struct usb_configuration_descriptor - *configuration_descriptor; - struct usb_device_descriptor *device_descriptor; -@@ -276,7 +280,24 @@ static int ep0_get_descriptor (struct usb_device_instance *device, - case USB_DESCRIPTOR_TYPE_ENDPOINT: - serial_printf("USB_DESCRIPTOR_TYPE_ENDPOINT - error not implemented\n"); - return -1; -+ /* This really means "Class Specific Descriptor #1 == USB_DT_DFU */ - case USB_DESCRIPTOR_TYPE_HID: -+#ifdef CONFIG_USBD_DFU -+ { -+ int bNumInterface = -+ le16_to_cpu(urb->device_request.wIndex); -+ -+ /* In runtime mode, we only respond to the DFU INTERFACE, -+ * whereas in DFU mode, we respond for all intrfaces */ -+ if (device->dfu_state != DFU_STATE_appIDLE && -+ device->dfu_state != DFU_STATE_appDETACH || -+ bNumInterface == CONFIG_USBD_DFU_INTERFACE) { -+ memcpy(urb->buffer,&device->dfu_cfg_desc->func_dfu,sizeof(struct usb_dfu_func_descriptor)); -+ urb->actual_length = sizeof(struct usb_dfu_func_descriptor); -+ } else -+ return -1; -+ } -+#else /* CONFIG_USBD_DFU */ - { - serial_printf("USB_DESCRIPTOR_TYPE_HID - error not implemented\n"); - return -1; /* unsupported at this time */ -@@ -304,6 +325,7 @@ static int ep0_get_descriptor (struct usb_device_instance *device, - max); - #endif - } -+#endif /* CONFIG_USBD_DFU */ - break; - case USB_DESCRIPTOR_TYPE_REPORT: - { -@@ -405,6 +427,24 @@ int ep0_recv_setup (struct urb *urb) - le16_to_cpu (request->wLength), - USBD_DEVICE_REQUESTS (request->bRequest)); - -+#ifdef CONFIG_USBD_DFU -+ if ((request->bmRequestType & 0x3f) == USB_TYPE_DFU && -+ (device->dfu_state != DFU_STATE_appIDLE || -+ le16_to_cpu(request->wIndex) == CONFIG_USBD_DFU_INTERFACE)) { -+ int rc = dfu_ep0_handler(urb); -+ switch (rc) { -+ case DFU_EP0_NONE: -+ case DFU_EP0_UNHANDLED: -+ break; -+ case DFU_EP0_ZLP: -+ case DFU_EP0_DATA: -+ return 0; -+ case DFU_EP0_STALL: -+ return -1; -+ } -+ } -+#endif /* CONFIG_USB_DFU */ -+ - /* handle USB Standard Request (c.f. USB Spec table 9-2) */ - if ((request->bmRequestType & USB_REQ_TYPE_MASK) != 0) { - if(device->device_state <= STATE_CONFIGURED){ -diff --git a/drivers/usb/usbdfu.c b/drivers/usb/usbdfu.c -new file mode 100644 -index 0000000..9adf951 ---- /dev/null -+++ b/drivers/usb/usbdfu.c -@@ -0,0 +1,1024 @@ -+/* -+ * (C) 2007 by OpenMoko, Inc. -+ * Author: Harald Welte <laforge@openmoko.org> -+ * -+ * based on existing SAM7DFU code from OpenPCD: -+ * (C) Copyright 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ * -+ * TODO: -+ * - make NAND support reasonably self-contained and put in apropriate -+ * ifdefs -+ * - add some means of synchronization, i.e. block commandline access -+ * while DFU transfer is in progress, and return to commandline once -+ * we're finished -+ * - add VERIFY support after writing to flash -+ * - sanely free() resources allocated during first uppload/download -+ * request when aborting -+ * - sanely free resources when another alternate interface is selected -+ * -+ * Maybe: -+ * - add something like uImage or some other header that provides CRC -+ * checking? -+ * - make 'dnstate' attached to 'struct usb_device_instance' -+ */ -+ -+#include <config.h> -+#if defined(CONFIG_USBD_DFU) -+ -+#include <common.h> -+ -+#include <malloc.h> -+#include <linux/types.h> -+#include <linux/list.h> -+#include <asm/errno.h> -+#include <usbdcore.h> -+#include <usb_dfu.h> -+#include <usb_dfu_descriptors.h> -+#include <usb_dfu_trailer.h> -+ -+#include <nand.h> -+#include <jffs2/load_kernel.h> -+int mtdparts_init(void); -+extern struct list_head devices; -+ -+#include "../serial/usbtty.h" /* for STR_* defs */ -+ -+#define RET_NOTHING 0 -+#define RET_ZLP 1 -+#define RET_STALL 2 -+ -+volatile enum dfu_state *system_dfu_state; /* for 3rd parties */ -+ -+ -+struct dnload_state { -+ nand_info_t *nand; -+ struct part_info *part; -+ unsigned int part_net_size; /* net sizee (excl. bad blocks) of part */ -+ -+ nand_erase_options_t erase_opts; -+ -+ unsigned char *ptr; /* pointer to next empty byte in buffer */ -+ unsigned int off; /* offset of current erase page in flash chip */ -+ unsigned char *buf; /* pointer to allocated erase page buffer */ -+ -+ /* unless doing an atomic transfer, we use the static buffer below. -+ * This saves us from having to clean up dynamic allications in the -+ * various error paths of the code. Also, it will always work, no -+ * matter what the memory situation is. */ -+ unsigned char _buf[0x20000]; /* FIXME: depends flash page size */ -+}; -+ -+static struct dnload_state _dnstate; -+ -+static int dfu_trailer_matching(const struct uboot_dfu_trailer *trailer) -+{ -+ if (trailer->magic != UBOOT_DFU_TRAILER_MAGIC || -+ trailer->version != UBOOT_DFU_TRAILER_V1 || -+ trailer->vendor != CONFIG_USBD_VENDORID || -+ (trailer->product != CONFIG_USBD_PRODUCTID_CDCACM && -+ trailer->product != CONFIG_USBD_PRODUCTID_GSERIAL)) -+ return 0; -+#ifdef CONFIG_REVISION_TAG -+ if (trailer->revision != get_board_rev()) -+ return 0; -+#endif -+ -+ return 1; -+} -+ -+static struct part_info *get_partition_nand(int idx) -+{ -+ struct mtd_device *dev; -+ struct part_info *part; -+ struct list_head *pentry; -+ int i; -+ -+ if (mtdparts_init()) -+ return NULL; -+ if (list_empty(&devices)) -+ return NULL; -+ -+ dev = list_entry(devices.next, struct mtd_device, link); -+ i = 0; -+ list_for_each(pentry, &dev->parts) { -+ if (i == idx) { -+ part = list_entry(pentry, struct part_info, link); -+ return part; -+ } -+ i++; -+ } -+ -+ return NULL; -+} -+ -+#define LOAD_ADDR ((unsigned char *)CONFIG_USBD_DFU_LOAD_ADDR) -+ -+static int initialize_ds_nand(struct usb_device_instance *dev, struct dnload_state *ds) -+{ -+ ds->part = get_partition_nand(dev->alternate - 1); -+ if (!ds->part) { -+ printf("DFU: unable to find partition %u\b", dev->alternate-1); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ return RET_STALL; -+ } -+ ds->nand = &nand_info[ds->part->dev->id->num]; -+ ds->off = ds->part->offset; -+ ds->part_net_size = ds->part->size; -+ -+ if (ds->nand->erasesize > sizeof(ds->_buf)) { -+ printf("*** Warning - NAND ERASESIZE bigger than static buffer\n"); -+ ds->buf = malloc(ds->nand->erasesize); -+ if (!ds->buf) { -+ printf("DFU: can't allocate %u bytes\n", ds->nand->erasesize); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ return RET_STALL; -+ } -+ } else -+ ds->buf = ds->_buf; -+ -+ ds->ptr = ds->buf; -+ -+ memset(&ds->erase_opts, 0, sizeof(ds->erase_opts)); -+ ds->erase_opts.quiet = 1; -+ /* FIXME: do this more dynamic */ -+ if (!strcmp(ds->part->name, "rootfs")) -+ ds->erase_opts.jffs2 = 1; -+ -+ debug("initialize_ds_nand(dev=%p, ds=%p): ", dev, ds); -+ debug("nand=%p, ptr=%p, buf=%p, off=0x%x\n", ds->nand, ds->ptr, ds->buf, ds->off); -+ -+ return RET_NOTHING; -+} -+ -+static int erase_flash_verify_nand(struct urb *urb, struct dnload_state *ds, -+ unsigned long erasesize, unsigned long size) -+{ -+ struct usb_device_instance *dev = urb->device; -+ int rc; -+ -+ debug("erase_flash_verify_nand(urb=%p, ds=%p, erase=0x%x size=0x%x)\n", -+ urb, ds, erasesize, size); -+ -+ if (erasesize == ds->nand->erasesize) { -+ /* we're only writing a single block and need to -+ * do bad block skipping / offset adjustments our own */ -+ while (ds->nand->block_isbad(ds->nand, ds->off)) { -+ debug("SKIP_ONE_BLOCK(0x%08x)!!\n", ds->off); -+ ds->off += ds->nand->erasesize; -+ } -+ } -+ -+ /* we have finished one eraseblock, flash it */ -+ ds->erase_opts.offset = ds->off; -+ ds->erase_opts.length = erasesize; -+ debug("Erasing 0x%x bytes @ offset 0x%x (jffs=%u)\n", -+ ds->erase_opts.length, ds->erase_opts.offset, -+ ds->erase_opts.jffs2); -+ rc = nand_erase_opts(ds->nand, &ds->erase_opts); -+ if (rc) { -+ debug("Error erasing\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errERASE; -+ return RET_STALL; -+ } -+ -+ debug("Writing 0x%x bytes @ offset 0x%x\n", size, ds->off); -+ rc = nand_write_skip_bad(ds->nand, ds->off,size,ds->buf); -+ if (rc) { -+ debug("Error writing\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errWRITE; -+ return RET_STALL; -+ } -+ -+ ds->off += size; -+ ds->ptr = ds->buf; -+ -+ /* FIXME: implement verify! */ -+ return RET_NOTHING; -+} -+ -+static int erase_tail_clean_nand(struct urb *urb, struct dnload_state *ds) -+{ -+ struct usb_device_instance *dev = urb->device; -+ int rc; -+ -+ ds->erase_opts.offset = ds->off; -+ ds->erase_opts.length = ds->part->size - (ds->off - ds->part->offset); -+ debug("Erasing tail of 0x%x bytes @ offset 0x%x (jffs=%u)\n", -+ ds->erase_opts.length, ds->erase_opts.offset, -+ ds->erase_opts.jffs2); -+ rc = nand_erase_opts(ds->nand, &ds->erase_opts); -+ if (rc) { -+ printf("Error erasing tail\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errERASE; -+ return RET_STALL; -+ } -+ -+ ds->off += ds->erase_opts.length; /* for consistency */ -+ -+ return RET_NOTHING; -+} -+ -+/* Read the next erase blcok from NAND into buffer */ -+static int read_next_nand(struct urb *urb, struct dnload_state *ds) -+{ -+ struct usb_device_instance *dev = urb->device; -+ int rc; -+ -+ debug("Reading 0x%x@0x%x to 0x%08p\n", ds->nand->erasesize, -+ ds->off, ds->buf); -+ rc = nand_read_skip_bad(ds->nand, ds->off, ds->nand->erasesize, ds->buf); -+ if (rc) { -+ debug("Error reading\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errWRITE; -+ return RET_STALL; -+ } -+ ds->off += ds->nand->erasesize; -+ ds->ptr = ds->buf; -+ -+ return RET_NOTHING; -+} -+ -+ -+static int handle_dnload(struct urb *urb, u_int16_t val, u_int16_t len, int first) -+{ -+ struct usb_device_instance *dev = urb->device; -+ struct dnload_state *ds = &_dnstate; -+ unsigned int actual_len = len; -+ unsigned int remain_len; -+ unsigned long size; -+ int rc; -+ -+ debug("download(len=%u, first=%u) ", len, first); -+ -+ if (len > CONFIG_USBD_DFU_XFER_SIZE) { -+ /* Too big. Not that we'd really care, but it's a -+ * DFU protocol violation */ -+ debug("length exceeds flash page size "); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ return RET_STALL; -+ } -+ -+ if (first) { -+ /* Make sure that we have a valid mtd partition table */ -+ char *mtdp = getenv("mtdparts"); -+ if (!mtdp) -+ run_command("mtdparts default",0); -+ } -+ -+ if (len == 0) { -+ debug("zero-size write -> MANIFEST_SYNC "); -+ dev->dfu_state = DFU_STATE_dfuMANIFEST_SYNC; -+ -+ /* cleanup */ -+ switch (dev->alternate) { -+ char buf[12]; -+ case 0: -+ sprintf(buf, "%lx", ds->ptr - ds->buf); -+ setenv("filesize", buf); -+ ds->ptr = ds->buf; -+ break; -+ case 1: -+ if (ds->ptr > -+ ds->buf + sizeof(struct uboot_dfu_trailer)) { -+ struct uboot_dfu_trailer trailer; -+ dfu_trailer_mirror(&trailer, ds->ptr); -+ if (!dfu_trailer_matching(&trailer)) { -+ printf("DFU TRAILER NOT OK\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errTARGET; -+ return RET_STALL; -+ } -+ -+ rc = erase_flash_verify_nand(urb, ds, -+ ds->part->size, -+ ds->part_net_size); -+/// /* re-write dynenv marker in OOB */ -+/// run_command("dynenv set u-boot_env", 0); -+ } -+ ds->nand = NULL; -+ free(ds->buf); -+ ds->ptr = ds->buf = ds->_buf; -+ break; -+ default: -+ rc = 0; -+ if (ds->ptr > ds->buf) -+ rc = erase_flash_verify_nand(urb, ds, -+ ds->nand->erasesize, -+ ds->nand->erasesize); -+ /* rootfs partition */ -+ if (!rc && !strcmp(ds->part->name, "rootfs")) -+ rc = erase_tail_clean_nand(urb, ds); -+ -+ ds->nand = NULL; -+ break; -+ } -+ -+ return RET_ZLP; -+ } -+ -+ if (urb->actual_length != len) { -+ debug("urb->actual_length(%u) != len(%u) ?!? ", -+ urb->actual_length, len); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ return RET_STALL; -+ } -+ -+ if (first && ds->buf && ds->buf != ds->_buf && ds->buf != LOAD_ADDR) { -+ free(ds->buf); -+ ds->buf = ds->_buf; -+ } -+ -+ switch (dev->alternate) { -+ case 0: -+ if (first) { -+ printf("Starting DFU DOWNLOAD to RAM (0x%08p)\n", -+ LOAD_ADDR); -+ ds->buf = LOAD_ADDR; -+ ds->ptr = ds->buf; -+ } -+ -+ memcpy(ds->ptr, urb->buffer, len); -+ ds->ptr += len; -+ break; -+ default: -+ if (first) { -+ rc = initialize_ds_nand(dev, ds); -+ if (rc) -+ return rc; -+ printf("Starting DFU DOWNLOAD to partition '%s'\n", -+ ds->part->name); -+ } -+ -+ size = ds->nand->erasesize; -+ remain_len = ds->buf + size - ds->ptr; -+ if (remain_len < len) -+ actual_len = remain_len; -+ -+ memcpy(ds->ptr, urb->buffer, actual_len); -+ ds->ptr += actual_len; -+ -+ /* check partition end */ -+ if (ds->off + (ds->ptr - ds->buf) > ds->part->offset + ds->part->size) { -+ printf("End of write exceeds partition end\n"); -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ return RET_STALL; -+ } -+ -+ if (ds->ptr >= ds->buf + size) { -+ rc = erase_flash_verify_nand(urb, ds, -+ ds->nand->erasesize, -+ ds->nand->erasesize); -+ if (rc) -+ return rc; -+ /* copy remainder of data into buffer */ -+ memcpy(ds->ptr, urb->buffer + actual_len, len - actual_len); -+ ds->ptr += (len - actual_len); -+ } -+ break; -+ } -+ -+ return RET_ZLP; -+} -+ -+static int handle_upload(struct urb *urb, u_int16_t val, u_int16_t len, int first) -+{ -+ struct usb_device_instance *dev = urb->device; -+ struct dnload_state *ds = &_dnstate; -+ unsigned int remain; -+ int rc; -+ -+ debug("upload(val=0x%02x, len=%u, first=%u) ", val, len, first); -+ -+ if (len > CONFIG_USBD_DFU_XFER_SIZE) { -+ /* Too big */ -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ dev->dfu_status = DFU_STATUS_errADDRESS; -+ //udc_ep0_send_stall(); -+ debug("Error: Transfer size > CONFIG_USBD_DFU_XFER_SIZE "); -+ return -EINVAL; -+ } -+ -+ switch (dev->alternate) { -+ case 0: -+ if (first) { -+ printf("Starting DFU Upload of RAM (0x%08p)\n", -+ LOAD_ADDR); -+ ds->ptr = ds->buf; -+ } -+ -+ /* FIXME: end at some more dynamic point */ -+ if (ds->ptr + len > LOAD_ADDR + 0x200000) -+ len = (LOAD_ADDR + 0x200000) - ds->ptr; -+ -+ urb->buffer = ds->ptr; -+ urb->actual_length = len; -+ ds->ptr += len; -+ break; -+ default: -+ if (first) { -+ rc = initialize_ds_nand(dev, ds); -+ if (rc) -+ return -EINVAL; -+ printf("Starting DFU Upload of partition '%s'\n", -+ ds->part->name); -+ rc = read_next_nand(urb, ds); -+ if (rc) -+ return -EINVAL; -+ } -+ -+ if (len > ds->nand->erasesize) { -+ printf("We don't support transfers bigger than %u\n", -+ ds->nand->erasesize); -+ len = ds->nand->erasesize; -+ } -+ -+ remain = ds->nand->erasesize - (ds->ptr - ds->buf); -+ if (len < remain) -+ remain = len; -+ -+ debug("copying %u bytes ", remain); -+ urb->buffer = ds->ptr; -+ ds->ptr += remain; -+ urb->actual_length = remain; -+ -+ if (ds->ptr >= ds->buf + ds->nand->erasesize && -+ ds->off < ds->part->offset + ds->part->size) { -+ rc = read_next_nand(urb, ds); -+ if (rc) -+ return -EINVAL; -+ if (len > remain) { -+ debug("copying another %u bytes ", len - remain); -+ memcpy(urb->buffer + remain, ds->ptr, len - remain); -+ ds->ptr += (len - remain); -+ urb->actual_length += (len - remain); -+ } -+ } -+ break; -+ } -+ -+ debug("returning len=%u\n", len); -+ return len; -+} -+ -+static void handle_getstatus(struct urb *urb, int max) -+{ -+ struct usb_device_instance *dev = urb->device; -+ struct dfu_status *dstat = (struct dfu_status *) urb->buffer; -+ -+ debug("getstatus "); -+ -+ if (!urb->buffer || urb->buffer_length < sizeof(*dstat)) { -+ debug("invalid urb! "); -+ return; -+ } -+ -+ switch (dev->dfu_state) { -+ case DFU_STATE_dfuDNLOAD_SYNC: -+ case DFU_STATE_dfuDNBUSY: -+#if 0 -+ if (fsr & AT91C_MC_PROGE) { -+ debug("errPROG "); -+ dev->dfu_status = DFU_STATUS_errPROG; -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ } else if (fsr & AT91C_MC_LOCKE) { -+ debug("errWRITE "); -+ dev->dfu_status = DFU_STATUS_errWRITE; -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ } else if (fsr & AT91C_MC_FRDY) { -+#endif -+ debug("DNLOAD_IDLE "); -+ dev->dfu_state = DFU_STATE_dfuDNLOAD_IDLE; -+#if 0 -+ } else { -+ debug("DNBUSY "); -+ dev->dfu_state = DFU_STATE_dfuDNBUSY; -+ } -+#endif -+ break; -+ case DFU_STATE_dfuMANIFEST_SYNC: -+ break; -+ default: -+ //return; -+ break; -+ } -+ -+ /* send status response */ -+ dstat->bStatus = dev->dfu_status; -+ dstat->bState = dev->dfu_state; -+ dstat->iString = 0; -+ /* FIXME: set dstat->bwPollTimeout */ -+ urb->actual_length = MIN(sizeof(*dstat), max); -+ -+ /* we don't need to explicitly send data here, will -+ * be done by the original caller! */ -+} -+ -+static void handle_getstate(struct urb *urb, int max) -+{ -+ debug("getstate "); -+ -+ if (!urb->buffer || urb->buffer_length < sizeof(u_int8_t)) { -+ debug("invalid urb! "); -+ return; -+ } -+ -+ urb->buffer[0] = urb->device->dfu_state & 0xff; -+ urb->actual_length = sizeof(u_int8_t); -+} -+ -+#ifndef CONFIG_USBD_PRODUCTID_DFU -+#define CONFIG_USBD_PRODUCTID_DFU CONFIG_USBD_PRODUCTID_CDCACM -+#endif -+ -+static const struct usb_device_descriptor dfu_dev_descriptor = { -+ .bLength = USB_DT_DEVICE_SIZE, -+ .bDescriptorType = USB_DT_DEVICE, -+ .bcdUSB = 0x0100, -+ .bDeviceClass = 0x00, -+ .bDeviceSubClass = 0x00, -+ .bDeviceProtocol = 0x00, -+ .bMaxPacketSize0 = EP0_MAX_PACKET_SIZE, -+ .idVendor = CONFIG_USBD_VENDORID, -+ .idProduct = CONFIG_USBD_PRODUCTID_DFU, -+ .bcdDevice = 0x0000, -+ .iManufacturer = DFU_STR_MANUFACTURER, -+ .iProduct = DFU_STR_PRODUCT, -+ .iSerialNumber = DFU_STR_SERIAL, -+ .bNumConfigurations = 0x01, -+}; -+ -+static const struct _dfu_desc dfu_cfg_descriptor = { -+ .ucfg = { -+ .bLength = USB_DT_CONFIG_SIZE, -+ .bDescriptorType = USB_DT_CONFIG, -+ .wTotalLength = USB_DT_CONFIG_SIZE + -+ DFU_NUM_ALTERNATES * USB_DT_INTERFACE_SIZE + -+ USB_DT_DFU_SIZE, -+ .bNumInterfaces = 5, -+ .bConfigurationValue = 1, -+ .iConfiguration = DFU_STR_CONFIG, -+ .bmAttributes = BMATTRIBUTE_RESERVED, -+ .bMaxPower = 50, -+ }, -+ .uif[0] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x00, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT0, -+ }, -+ .uif[1] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x01, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT1, -+ }, -+ .uif[2] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x02, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT2, -+ }, -+ .uif[3] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x03, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT3, -+ }, -+ .uif[4] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x04, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT4, -+ }, -+ .uif[5] = { -+ .bLength = USB_DT_INTERFACE_SIZE, -+ .bDescriptorType = USB_DT_INTERFACE, -+ .bInterfaceNumber = 0x00, -+ .bAlternateSetting = 0x05, -+ .bNumEndpoints = 0x00, -+ .bInterfaceClass = 0xfe, -+ .bInterfaceSubClass = 0x01, -+ .bInterfaceProtocol = 0x02, -+ .iInterface = DFU_STR_ALT5, -+ }, -+ .func_dfu = DFU_FUNC_DESC, -+}; -+ -+int dfu_ep0_handler(struct urb *urb) -+{ -+ int rc, ret = RET_NOTHING; -+ u_int8_t req = urb->device_request.bRequest; -+ u_int16_t val = urb->device_request.wValue; -+ u_int16_t len = urb->device_request.wLength; -+ struct usb_device_instance *dev = urb->device; -+ -+ debug("dfu_ep0(req=0x%x, val=0x%x, len=%u) old_state = %u ", -+ req, val, len, dev->dfu_state); -+ -+ switch (dev->dfu_state) { -+ case DFU_STATE_appIDLE: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ case USB_REQ_DFU_DETACH: -+ dev->dfu_state = DFU_STATE_appDETACH; -+ ret = RET_ZLP; -+ goto out; -+ break; -+ default: -+ ret = RET_STALL; -+ } -+ break; -+ case DFU_STATE_appDETACH: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_appIDLE; -+ ret = RET_STALL; -+ goto out; -+ break; -+ } -+ /* FIXME: implement timer to return to appIDLE */ -+ break; -+ case DFU_STATE_dfuIDLE: -+ switch (req) { -+ case USB_REQ_DFU_DNLOAD: -+ if (len == 0) { -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ goto out; -+ } -+ dev->dfu_state = DFU_STATE_dfuDNLOAD_SYNC; -+ ret = handle_dnload(urb, val, len, 1); -+ break; -+ case USB_REQ_DFU_UPLOAD: -+ dev->dfu_state = DFU_STATE_dfuUPLOAD_IDLE; -+ handle_upload(urb, val, len, 1); -+ break; -+ case USB_REQ_DFU_ABORT: -+ /* no zlp? */ -+ ret = RET_ZLP; -+ break; -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ case USB_REQ_DFU_DETACH: -+ /* Proprietary extension: 'detach' from idle mode and -+ * get back to runtime mode in case of USB Reset. As -+ * much as I dislike this, we just can't use every USB -+ * bus reset to switch back to runtime mode, since at -+ * least the Linux USB stack likes to send a number of resets -+ * in a row :( */ -+ dev->dfu_state = DFU_STATE_dfuMANIFEST_WAIT_RST; -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ goto out; -+ break; -+ } -+ break; -+ case DFU_STATE_dfuDNLOAD_SYNC: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ /* FIXME: state transition depending on block completeness */ -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ goto out; -+ } -+ break; -+ case DFU_STATE_dfuDNBUSY: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ /* FIXME: only accept getstatus if bwPollTimeout -+ * has elapsed */ -+ handle_getstatus(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ goto out; -+ } -+ break; -+ case DFU_STATE_dfuDNLOAD_IDLE: -+ switch (req) { -+ case USB_REQ_DFU_DNLOAD: -+ dev->dfu_state = DFU_STATE_dfuDNLOAD_SYNC; -+ ret = handle_dnload(urb, val, len, 0); -+ break; -+ case USB_REQ_DFU_ABORT: -+ dev->dfu_state = DFU_STATE_dfuIDLE; -+ ret = RET_ZLP; -+ break; -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ break; -+ } -+ break; -+ case DFU_STATE_dfuMANIFEST_SYNC: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ /* We're MainfestationTolerant */ -+ dev->dfu_state = DFU_STATE_dfuIDLE; -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ break; -+ } -+ break; -+ case DFU_STATE_dfuMANIFEST: -+ /* we should never go here */ -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ break; -+ case DFU_STATE_dfuMANIFEST_WAIT_RST: -+ /* we should never go here */ -+ break; -+ case DFU_STATE_dfuUPLOAD_IDLE: -+ switch (req) { -+ case USB_REQ_DFU_UPLOAD: -+ /* state transition if less data then requested */ -+ rc = handle_upload(urb, val, len, 0); -+ if (rc >= 0 && rc < len) -+ dev->dfu_state = DFU_STATE_dfuIDLE; -+ break; -+ case USB_REQ_DFU_ABORT: -+ dev->dfu_state = DFU_STATE_dfuIDLE; -+ /* no zlp? */ -+ ret = RET_ZLP; -+ break; -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ break; -+ } -+ break; -+ case DFU_STATE_dfuERROR: -+ switch (req) { -+ case USB_REQ_DFU_GETSTATUS: -+ handle_getstatus(urb, len); -+ break; -+ case USB_REQ_DFU_GETSTATE: -+ handle_getstate(urb, len); -+ break; -+ case USB_REQ_DFU_CLRSTATUS: -+ dev->dfu_state = DFU_STATE_dfuIDLE; -+ dev->dfu_status = DFU_STATUS_OK; -+ /* no zlp? */ -+ ret = RET_ZLP; -+ break; -+ default: -+ dev->dfu_state = DFU_STATE_dfuERROR; -+ ret = RET_STALL; -+ break; -+ } -+ break; -+ default: -+ return DFU_EP0_UNHANDLED; -+ break; -+ } -+ -+out: -+ debug("new_state = %u, ret = %u\n", dev->dfu_state, ret); -+ -+ switch (ret) { -+ case RET_ZLP: -+ //udc_ep0_send_zlp(); -+ urb->actual_length = 0; -+ return DFU_EP0_ZLP; -+ break; -+ case RET_STALL: -+ //udc_ep0_send_stall(); -+ return DFU_EP0_STALL; -+ break; -+ case RET_NOTHING: -+ break; -+ } -+ -+ return DFU_EP0_DATA; -+} -+ -+void str2wide (char *str, u16 * wide); -+static struct usb_string_descriptor *create_usbstring(char *string) -+{ -+ struct usb_string_descriptor *strdesc; -+ int size = sizeof(*strdesc) + strlen(string)*2; -+ -+ if (size > 255) -+ return NULL; -+ -+ strdesc = malloc(size); -+ if (!strdesc) -+ return NULL; -+ -+ strdesc->bLength = size; -+ strdesc->bDescriptorType = USB_DT_STRING; -+ str2wide(string, strdesc->wData); -+ -+ return strdesc; -+} -+ -+ -+static void dfu_init_strings(struct usb_device_instance *dev) -+{ -+ int i; -+ struct usb_string_descriptor *strdesc; -+ -+ strdesc = create_usbstring(CONFIG_DFU_CFG_STR); -+ usb_strings[DFU_STR_CONFIG] = strdesc; -+ -+ for (i = 0; i < DFU_NUM_ALTERNATES; i++) { -+ if (i == 0) { -+ strdesc = create_usbstring(CONFIG_DFU_ALT0_STR); -+ } else { -+ struct part_info *part = get_partition_nand(i-1); -+ -+ if (part) -+ strdesc = create_usbstring(part->name); -+ else -+ strdesc = -+ create_usbstring("undefined partition"); -+ } -+ if (!strdesc) -+ continue; -+ usb_strings[STR_COUNT+i+1] = strdesc; -+ } -+} -+ -+int dfu_init_instance(struct usb_device_instance *dev) -+{ -+ dev->dfu_dev_desc = &dfu_dev_descriptor; -+ dev->dfu_cfg_desc = &dfu_cfg_descriptor; -+ dev->dfu_state = DFU_STATE_appIDLE; -+ dev->dfu_status = DFU_STATUS_OK; -+ -+ if (system_dfu_state) -+ printf("SURPRISE: system_dfu_state is already set\n"); -+ system_dfu_state = &dev->dfu_state; -+ -+ dfu_init_strings(dev); -+ -+ return 0; -+} -+ -+static int stdout_switched; -+ -+/* event handler for usb device state events */ -+void dfu_event(struct usb_device_instance *device, -+ usb_device_event_t event, int data) -+{ -+ char *out; -+ -+ switch (event) { -+ case DEVICE_RESET: -+ switch (device->dfu_state) { -+ case DFU_STATE_appDETACH: -+ device->dfu_state = DFU_STATE_dfuIDLE; -+ out = getenv("stdout"); -+ if (out && !strcmp(out, "usbtty")) { -+ setenv("stdin", "serial"); -+ setenv("stdout", "serial"); -+ setenv("stderr", "serial"); -+ stdout_switched = 1; -+ } -+ printf("DFU: Switching to DFU Mode\n"); -+ break; -+ case DFU_STATE_dfuMANIFEST_WAIT_RST: -+ device->dfu_state = DFU_STATE_appIDLE; -+ printf("DFU: Switching back to Runtime mode\n"); -+ if (stdout_switched) { -+ setenv("stdin", "usbtty"); -+ setenv("stdout", "usbtty"); -+ setenv("stderr", "usbtty"); -+ stdout_switched = 0; -+ } -+ break; -+ default: -+ break; -+ } -+ break; -+ case DEVICE_CONFIGURED: -+ case DEVICE_DE_CONFIGURED: -+ debug("SET_CONFIGURATION(%u) ", device->configuration); -+ /* fallthrough */ -+ case DEVICE_SET_INTERFACE: -+ debug("SET_INTERFACE(%u,%u) old_state = %u ", -+ device->interface, device->alternate, -+ device->dfu_state); -+ switch (device->dfu_state) { -+ case DFU_STATE_appIDLE: -+ case DFU_STATE_appDETACH: -+ case DFU_STATE_dfuIDLE: -+ case DFU_STATE_dfuMANIFEST_WAIT_RST: -+ /* do nothing, we're fine */ -+ break; -+ case DFU_STATE_dfuDNLOAD_SYNC: -+ case DFU_STATE_dfuDNBUSY: -+ case DFU_STATE_dfuDNLOAD_IDLE: -+ case DFU_STATE_dfuMANIFEST: -+ device->dfu_state = DFU_STATE_dfuERROR; -+ device->dfu_status = DFU_STATUS_errNOTDONE; -+ /* FIXME: free malloc()ed buffer! */ -+ break; -+ case DFU_STATE_dfuMANIFEST_SYNC: -+ case DFU_STATE_dfuUPLOAD_IDLE: -+ case DFU_STATE_dfuERROR: -+ device->dfu_state = DFU_STATE_dfuERROR; -+ device->dfu_status = DFU_STATUS_errUNKNOWN; -+ break; -+ } -+ debug("new_state = %u\n", device->dfu_state); -+ break; -+ default: -+ break; -+ } -+} -+#endif /* CONFIG_USBD_DFU */ -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 5641ddb..0086618 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -108,6 +108,11 @@ - #define CONFIG_MUSB 1 /* Enable USB driver*/ - #define CONFIG_TWL4030_USB 1 /* Enable TWL4030 USB */ - -+#define CONFIG_USBD_DFU 1 /* Enable DFU support */ -+#define CONFIG_USBD_DFU_XFER_SIZE 0x4000 -+#define CONFIG_USBD_DFU_INTERFACE 2 -+#define CONFIG_USBD_DFU_LOAD_ADDR 0x82000000 -+ - /* Allow console in serial and USB at the same time */ - #define CONFIG_CONSOLE_MUX 1 - #define CONFIG_SYS_CONSOLE_IS_IN_ENV 1 -@@ -164,12 +169,8 @@ - #define CONFIG_SYS_NAND_WP - - #define CONFIG_JFFS2_NAND --/* nand device jffs2 lives on */ --#define CONFIG_JFFS2_DEV "nand0" --/* start of jffs2 partition */ --#define CONFIG_JFFS2_PART_OFFSET 0x680000 --#define CONFIG_JFFS2_PART_SIZE 0xf980000 /* size of jffs2 */ -- /* partition */ -+#define CONFIG_JFFS2_CMDLINE -+#define MTDPARTS_DEFAULT "mtdparts=nand0:32k(x-loader),2400k(u-boot),128k(u-boot_env),4096(kernel),-(fs)" - - /* Environment information */ - #define CONFIG_BOOTDELAY 10 -@@ -196,7 +197,7 @@ - "bootm ${loadaddr}\0" \ - "nandboot=echo Booting from nand ...; " \ - "run nandargs; " \ -- "nand read ${loadaddr} 280000 400000; " \ -+ "nboot kernel; " \ - "bootm ${loadaddr}\0" \ - "usbtty=cdc_acm\0"\ - "stdout=serial,usbtty\0" \ -diff --git a/include/usb_dfu.h b/include/usb_dfu.h -new file mode 100644 -index 0000000..4904196 ---- /dev/null -+++ b/include/usb_dfu.h -@@ -0,0 +1,113 @@ -+#ifndef _DFU_H -+#define _DFU_H -+ -+/* USB Device Firmware Update Implementation for u-boot -+ * (C) 2007 by OpenMoko, Inc. -+ * Author: Harald Welte <laforge@openmoko.org> -+ * -+ * based on: USB Device Firmware Update Implementation for OpenPCD -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * This ought to be compliant to the USB DFU Spec 1.0 as available from -+ * http://www.usb.org/developers/devclass_docs/usbdfu10.pdf -+ * -+ * This program 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 -+ */ -+ -+#include <asm/types.h> -+#include <usbdescriptors.h> -+#include <usb_dfu_descriptors.h> -+#include <config.h> -+ -+/* USB DFU functional descriptor */ -+#define DFU_FUNC_DESC { \ -+ .bLength = USB_DT_DFU_SIZE, \ -+ .bDescriptorType = USB_DT_DFU, \ -+ .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD, \ -+ .wDetachTimeOut = 0xff00, \ -+ .wTransferSize = CONFIG_USBD_DFU_XFER_SIZE, \ -+ .bcdDFUVersion = 0x0100, \ -+} -+ -+/* USB Interface descriptor in Runtime mode */ -+#ifdef CONFIG_USB_STRING -+#define DFU_RT_IF_DESC { \ -+ .bLength = USB_DT_INTERFACE_SIZE, \ -+ .bDescriptorType = USB_DT_INTERFACE, \ -+ .bInterfaceNumber = CONFIG_USBD_DFU_INTERFACE, \ -+ .bAlternateSetting = 0x00, \ -+ .bNumEndpoints = 0x00, \ -+ .bInterfaceClass = 0xfe, \ -+ .bInterfaceSubClass = 0x01, \ -+ .bInterfaceProtocol = 0x01, \ -+ .iInterface = 1, \ -+} -+#else -+#define DFU_RT_IF_DESC { \ -+ .bLength = USB_DT_INTERFACE_SIZE, \ -+ .bDescriptorType = USB_DT_INTERFACE, \ -+ .bInterfaceNumber = CONFIG_USBD_DFU_INTERFACE, \ -+ .bAlternateSetting = 0x00, \ -+ .bNumEndpoints = 0x00, \ -+ .bInterfaceClass = 0xfe, \ -+ .bInterfaceSubClass = 0x01, \ -+ .bInterfaceProtocol = 0x01, \ -+ .iInterface = 0, \ -+} -+#endif -+ -+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -+ -+#define DFU_NUM_ALTERNATES 6 -+ -+#define DFU_STR_MANUFACTURER STR_MANUFACTURER -+#define DFU_STR_PRODUCT STR_PRODUCT -+#define DFU_STR_SERIAL STR_SERIAL -+#define DFU_STR_CONFIG (STR_COUNT) -+#define DFU_STR_ALT0 (STR_COUNT+1) -+#define DFU_STR_ALT1 (STR_COUNT+2) -+#define DFU_STR_ALT2 (STR_COUNT+3) -+#define DFU_STR_ALT3 (STR_COUNT+4) -+#define DFU_STR_ALT4 (STR_COUNT+5) -+#define DFU_STR_ALT5 (STR_COUNT+6) -+#define DFU_STR_COUNT (STR_COUNT+7) -+ -+#define DFU_NUM_STRINGS (STR_COUNT+8) -+ -+#define CONFIG_DFU_CFG_STR "USB Device Firmware Upgrade" -+#define CONFIG_DFU_ALT0_STR "RAM CONFIG_USBD_DFU_LOAD_ADDR" -+ -+struct _dfu_desc { -+ struct usb_configuration_descriptor ucfg; -+ struct usb_interface_descriptor uif[DFU_NUM_ALTERNATES]; -+ struct usb_dfu_func_descriptor func_dfu; -+}; -+ -+int dfu_init_instance(struct usb_device_instance *dev); -+ -+#define DFU_EP0_NONE 0 -+#define DFU_EP0_UNHANDLED 1 -+#define DFU_EP0_STALL 2 -+#define DFU_EP0_ZLP 3 -+#define DFU_EP0_DATA 4 -+ -+extern volatile enum dfu_state *system_dfu_state; /* for 3rd parties */ -+ -+int dfu_ep0_handler(struct urb *urb); -+ -+void dfu_event(struct usb_device_instance *device, -+ usb_device_event_t event, int data); -+ -+#endif /* _DFU_H */ -diff --git a/include/usb_dfu_descriptors.h b/include/usb_dfu_descriptors.h -new file mode 100644 -index 0000000..d4d6a4d ---- /dev/null -+++ b/include/usb_dfu_descriptors.h -@@ -0,0 +1,94 @@ -+#ifndef _USB_DFU_H -+#define _USB_DFU_H -+/* USB Device Firmware Update Implementation for OpenPCD -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * Protocol definitions for USB DFU -+ * -+ * This ought to be compliant to the USB DFU Spec 1.0 as available from -+ * http://www.usb.org/developers/devclass_docs/usbdfu10.pdf -+ * -+ * This program 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 -+ */ -+ -+#include <linux/types.h> -+ -+#define USB_DT_DFU 0x21 -+ -+struct usb_dfu_func_descriptor { -+ u_int8_t bLength; -+ u_int8_t bDescriptorType; -+ u_int8_t bmAttributes; -+#define USB_DFU_CAN_DOWNLOAD (1 << 0) -+#define USB_DFU_CAN_UPLOAD (1 << 1) -+#define USB_DFU_MANIFEST_TOL (1 << 2) -+#define USB_DFU_WILL_DETACH (1 << 3) -+ u_int16_t wDetachTimeOut; -+ u_int16_t wTransferSize; -+ u_int16_t bcdDFUVersion; -+} __attribute__ ((packed)); -+ -+#define USB_DT_DFU_SIZE 9 -+ -+#define USB_TYPE_DFU (USB_TYPE_CLASS|USB_RECIP_INTERFACE) -+ -+/* DFU class-specific requests (Section 3, DFU Rev 1.1) */ -+#define USB_REQ_DFU_DETACH 0x00 -+#define USB_REQ_DFU_DNLOAD 0x01 -+#define USB_REQ_DFU_UPLOAD 0x02 -+#define USB_REQ_DFU_GETSTATUS 0x03 -+#define USB_REQ_DFU_CLRSTATUS 0x04 -+#define USB_REQ_DFU_GETSTATE 0x05 -+#define USB_REQ_DFU_ABORT 0x06 -+ -+struct dfu_status { -+ u_int8_t bStatus; -+ u_int8_t bwPollTimeout[3]; -+ u_int8_t bState; -+ u_int8_t iString; -+} __attribute__((packed)); -+ -+#define DFU_STATUS_OK 0x00 -+#define DFU_STATUS_errTARGET 0x01 -+#define DFU_STATUS_errFILE 0x02 -+#define DFU_STATUS_errWRITE 0x03 -+#define DFU_STATUS_errERASE 0x04 -+#define DFU_STATUS_errCHECK_ERASED 0x05 -+#define DFU_STATUS_errPROG 0x06 -+#define DFU_STATUS_errVERIFY 0x07 -+#define DFU_STATUS_errADDRESS 0x08 -+#define DFU_STATUS_errNOTDONE 0x09 -+#define DFU_STATUS_errFIRMWARE 0x0a -+#define DFU_STATUS_errVENDOR 0x0b -+#define DFU_STATUS_errUSBR 0x0c -+#define DFU_STATUS_errPOR 0x0d -+#define DFU_STATUS_errUNKNOWN 0x0e -+#define DFU_STATUS_errSTALLEDPKT 0x0f -+ -+enum dfu_state { -+ DFU_STATE_appIDLE = 0, -+ DFU_STATE_appDETACH = 1, -+ DFU_STATE_dfuIDLE = 2, -+ DFU_STATE_dfuDNLOAD_SYNC = 3, -+ DFU_STATE_dfuDNBUSY = 4, -+ DFU_STATE_dfuDNLOAD_IDLE = 5, -+ DFU_STATE_dfuMANIFEST_SYNC = 6, -+ DFU_STATE_dfuMANIFEST = 7, -+ DFU_STATE_dfuMANIFEST_WAIT_RST = 8, -+ DFU_STATE_dfuUPLOAD_IDLE = 9, -+ DFU_STATE_dfuERROR = 10, -+}; -+ -+#endif /* _USB_DFU_H */ -diff --git a/include/usb_dfu_trailer.h b/include/usb_dfu_trailer.h -new file mode 100644 -index 0000000..3903b85 ---- /dev/null -+++ b/include/usb_dfu_trailer.h -@@ -0,0 +1,31 @@ -+#ifndef _USB_DFU_TRAILER_H -+#define _USB_DFU_TRAILER_H -+ -+/* trailer handling for DFU files */ -+ -+#define UBOOT_DFU_TRAILER_V1 1 -+#define UBOOT_DFU_TRAILER_MAGIC 0x19731978 -+struct uboot_dfu_trailer { -+ u_int32_t magic; -+ u_int16_t version; -+ u_int16_t length; -+ u_int16_t vendor; -+ u_int16_t product; -+ u_int32_t revision; -+} __attribute__((packed)); -+ -+/* we mirror the trailer because we want it to be longer in later versions -+ * while keeping backwards compatibility */ -+static inline void dfu_trailer_mirror(struct uboot_dfu_trailer *trailer, -+ unsigned char *eof) -+{ -+ int i; -+ int len = sizeof(struct uboot_dfu_trailer); -+ unsigned char *src = eof - len; -+ unsigned char *dst = (unsigned char *) trailer; -+ -+ for (i = 0; i < len; i++) -+ dst[len-1-i] = src[i]; -+} -+ -+#endif /* _USB_DFU_TRAILER_H */ -diff --git a/include/usbdcore.h b/include/usbdcore.h -index 206dbbc..e966f34 100644 ---- a/include/usbdcore.h -+++ b/include/usbdcore.h -@@ -33,6 +33,7 @@ - - #include <common.h> - #include "usbdescriptors.h" -+#include <usb_dfu_descriptors.h> - - - #define MAX_URBS_QUEUED 5 -@@ -467,7 +468,11 @@ typedef struct urb_link { - * function driver to inform it that data has arrived. - */ - -+#ifdef CONFIG_USBD_DFU -+#define URB_BUF_SIZE (128+CONFIG_USBD_DFU_XFER_SIZE) -+#else - #define URB_BUF_SIZE 128 /* in linux we'd malloc this, but in u-boot we prefer static data */ -+#endif - struct urb { - - struct usb_endpoint_instance *endpoint; -@@ -595,6 +600,12 @@ struct usb_device_instance { - unsigned long usbd_rxtx_timestamp; - unsigned long usbd_last_rxtx_timestamp; - -+#ifdef CONFIG_USBD_DFU -+ struct usb_device_descriptor *dfu_dev_desc; -+ struct _dfu_desc *dfu_cfg_desc; -+ enum dfu_state dfu_state; -+ u_int8_t dfu_status; -+#endif - }; - - /* Bus Interface configuration structure -@@ -624,6 +635,8 @@ extern char *usbd_device_status[]; - extern char *usbd_device_requests[]; - extern char *usbd_device_descriptors[]; - -+extern struct usb_string_descriptor **usb_strings; -+ - void urb_link_init (urb_link * ul); - void urb_detach (struct urb *urb); - urb_link *first_urb_link (urb_link * hd); -diff --git a/tools/dfu-util/COPYING b/tools/dfu-util/COPYING -new file mode 100644 -index 0000000..d60c31a ---- /dev/null -+++ b/tools/dfu-util/COPYING -@@ -0,0 +1,340 @@ -+ GNU GENERAL PUBLIC LICENSE -+ Version 2, June 1991 -+ -+ Copyright (C) 1989, 1991 Free Software Foundation, Inc. -+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+ Preamble -+ -+ The licenses for most software are designed to take away your -+freedom to share and change it. By contrast, the GNU General Public -+License is intended to guarantee your freedom to share and change free -+software--to make sure the software is free for all its users. This -+General Public License applies to most of the Free Software -+Foundation's software and to any other program whose authors commit to -+using it. (Some other Free Software Foundation software is covered by -+the GNU Library General Public License instead.) You can apply it to -+your programs, too. -+ -+ When we speak of free software, we are referring to freedom, not -+price. Our General Public Licenses are designed to make sure that you -+have the freedom to distribute copies of free software (and charge for -+this service if you wish), that you receive source code or can get it -+if you want it, that you can change the software or use pieces of it -+in new free programs; and that you know you can do these things. -+ -+ To protect your rights, we need to make restrictions that forbid -+anyone to deny you these rights or to ask you to surrender the rights. -+These restrictions translate to certain responsibilities for you if you -+distribute copies of the software, or if you modify it. -+ -+ For example, if you distribute copies of such a program, whether -+gratis or for a fee, you must give the recipients all the rights that -+you have. You must make sure that they, too, receive or can get the -+source code. And you must show them these terms so they know their -+rights. -+ -+ We protect your rights with two steps: (1) copyright the software, and -+(2) offer you this license which gives you legal permission to copy, -+distribute and/or modify the software. -+ -+ Also, for each author's protection and ours, we want to make certain -+that everyone understands that there is no warranty for this free -+software. If the software is modified by someone else and passed on, we -+want its recipients to know that what they have is not the original, so -+that any problems introduced by others will not reflect on the original -+authors' reputations. -+ -+ Finally, any free program is threatened constantly by software -+patents. We wish to avoid the danger that redistributors of a free -+program will individually obtain patent licenses, in effect making the -+program proprietary. To prevent this, we have made it clear that any -+patent must be licensed for everyone's free use or not licensed at all. -+ -+ The precise terms and conditions for copying, distribution and -+modification follow. -+ -+ GNU GENERAL PUBLIC LICENSE -+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -+ -+ 0. This License applies to any program or other work which contains -+a notice placed by the copyright holder saying it may be distributed -+under the terms of this General Public License. The "Program", below, -+refers to any such program or work, and a "work based on the Program" -+means either the Program or any derivative work under copyright law: -+that is to say, a work containing the Program or a portion of it, -+either verbatim or with modifications and/or translated into another -+language. (Hereinafter, translation is included without limitation in -+the term "modification".) Each licensee is addressed as "you". -+ -+Activities other than copying, distribution and modification are not -+covered by this License; they are outside its scope. The act of -+running the Program is not restricted, and the output from the Program -+is covered only if its contents constitute a work based on the -+Program (independent of having been made by running the Program). -+Whether that is true depends on what the Program does. -+ -+ 1. You may copy and distribute verbatim copies of the Program's -+source code as you receive it, in any medium, provided that you -+conspicuously and appropriately publish on each copy an appropriate -+copyright notice and disclaimer of warranty; keep intact all the -+notices that refer to this License and to the absence of any warranty; -+and give any other recipients of the Program a copy of this License -+along with the Program. -+ -+You may charge a fee for the physical act of transferring a copy, and -+you may at your option offer warranty protection in exchange for a fee. -+ -+ 2. You may modify your copy or copies of the Program or any portion -+of it, thus forming a work based on the Program, and copy and -+distribute such modifications or work under the terms of Section 1 -+above, provided that you also meet all of these conditions: -+ -+ a) You must cause the modified files to carry prominent notices -+ stating that you changed the files and the date of any change. -+ -+ b) You must cause any work that you distribute or publish, that in -+ whole or in part contains or is derived from the Program or any -+ part thereof, to be licensed as a whole at no charge to all third -+ parties under the terms of this License. -+ -+ c) If the modified program normally reads commands interactively -+ when run, you must cause it, when started running for such -+ interactive use in the most ordinary way, to print or display an -+ announcement including an appropriate copyright notice and a -+ notice that there is no warranty (or else, saying that you provide -+ a warranty) and that users may redistribute the program under -+ these conditions, and telling the user how to view a copy of this -+ License. (Exception: if the Program itself is interactive but -+ does not normally print such an announcement, your work based on -+ the Program is not required to print an announcement.) -+ -+These requirements apply to the modified work as a whole. If -+identifiable sections of that work are not derived from the Program, -+and can be reasonably considered independent and separate works in -+themselves, then this License, and its terms, do not apply to those -+sections when you distribute them as separate works. But when you -+distribute the same sections as part of a whole which is a work based -+on the Program, the distribution of the whole must be on the terms of -+this License, whose permissions for other licensees extend to the -+entire whole, and thus to each and every part regardless of who wrote it. -+ -+Thus, it is not the intent of this section to claim rights or contest -+your rights to work written entirely by you; rather, the intent is to -+exercise the right to control the distribution of derivative or -+collective works based on the Program. -+ -+In addition, mere aggregation of another work not based on the Program -+with the Program (or with a work based on the Program) on a volume of -+a storage or distribution medium does not bring the other work under -+the scope of this License. -+ -+ 3. You may copy and distribute the Program (or a work based on it, -+under Section 2) in object code or executable form under the terms of -+Sections 1 and 2 above provided that you also do one of the following: -+ -+ a) Accompany it with the complete corresponding machine-readable -+ source code, which must be distributed under the terms of Sections -+ 1 and 2 above on a medium customarily used for software interchange; or, -+ -+ b) Accompany it with a written offer, valid for at least three -+ years, to give any third party, for a charge no more than your -+ cost of physically performing source distribution, a complete -+ machine-readable copy of the corresponding source code, to be -+ distributed under the terms of Sections 1 and 2 above on a medium -+ customarily used for software interchange; or, -+ -+ c) Accompany it with the information you received as to the offer -+ to distribute corresponding source code. (This alternative is -+ allowed only for noncommercial distribution and only if you -+ received the program in object code or executable form with such -+ an offer, in accord with Subsection b above.) -+ -+The source code for a work means the preferred form of the work for -+making modifications to it. For an executable work, complete source -+code means all the source code for all modules it contains, plus any -+associated interface definition files, plus the scripts used to -+control compilation and installation of the executable. However, as a -+special exception, the source code distributed need not include -+anything that is normally distributed (in either source or binary -+form) with the major components (compiler, kernel, and so on) of the -+operating system on which the executable runs, unless that component -+itself accompanies the executable. -+ -+If distribution of executable or object code is made by offering -+access to copy from a designated place, then offering equivalent -+access to copy the source code from the same place counts as -+distribution of the source code, even though third parties are not -+compelled to copy the source along with the object code. -+ -+ 4. You may not copy, modify, sublicense, or distribute the Program -+except as expressly provided under this License. Any attempt -+otherwise to copy, modify, sublicense or distribute the Program is -+void, and will automatically terminate your rights under this License. -+However, parties who have received copies, or rights, from you under -+this License will not have their licenses terminated so long as such -+parties remain in full compliance. -+ -+ 5. You are not required to accept this License, since you have not -+signed it. However, nothing else grants you permission to modify or -+distribute the Program or its derivative works. These actions are -+prohibited by law if you do not accept this License. Therefore, by -+modifying or distributing the Program (or any work based on the -+Program), you indicate your acceptance of this License to do so, and -+all its terms and conditions for copying, distributing or modifying -+the Program or works based on it. -+ -+ 6. Each time you redistribute the Program (or any work based on the -+Program), the recipient automatically receives a license from the -+original licensor to copy, distribute or modify the Program subject to -+these terms and conditions. You may not impose any further -+restrictions on the recipients' exercise of the rights granted herein. -+You are not responsible for enforcing compliance by third parties to -+this License. -+ -+ 7. If, as a consequence of a court judgment or allegation of patent -+infringement or for any other reason (not limited to patent issues), -+conditions are imposed on you (whether by court order, agreement or -+otherwise) that contradict the conditions of this License, they do not -+excuse you from the conditions of this License. If you cannot -+distribute so as to satisfy simultaneously your obligations under this -+License and any other pertinent obligations, then as a consequence you -+may not distribute the Program at all. For example, if a patent -+license would not permit royalty-free redistribution of the Program by -+all those who receive copies directly or indirectly through you, then -+the only way you could satisfy both it and this License would be to -+refrain entirely from distribution of the Program. -+ -+If any portion of this section is held invalid or unenforceable under -+any particular circumstance, the balance of the section is intended to -+apply and the section as a whole is intended to apply in other -+circumstances. -+ -+It is not the purpose of this section to induce you to infringe any -+patents or other property right claims or to contest validity of any -+such claims; this section has the sole purpose of protecting the -+integrity of the free software distribution system, which is -+implemented by public license practices. Many people have made -+generous contributions to the wide range of software distributed -+through that system in reliance on consistent application of that -+system; it is up to the author/donor to decide if he or she is willing -+to distribute software through any other system and a licensee cannot -+impose that choice. -+ -+This section is intended to make thoroughly clear what is believed to -+be a consequence of the rest of this License. -+ -+ 8. If the distribution and/or use of the Program is restricted in -+certain countries either by patents or by copyrighted interfaces, the -+original copyright holder who places the Program under this License -+may add an explicit geographical distribution limitation excluding -+those countries, so that distribution is permitted only in or among -+countries not thus excluded. In such case, this License incorporates -+the limitation as if written in the body of this License. -+ -+ 9. The Free Software Foundation may publish revised and/or new versions -+of the General Public License from time to time. Such new versions will -+be similar in spirit to the present version, but may differ in detail to -+address new problems or concerns. -+ -+Each version is given a distinguishing version number. If the Program -+specifies a version number of this License which applies to it and "any -+later version", you have the option of following the terms and conditions -+either of that version or of any later version published by the Free -+Software Foundation. If the Program does not specify a version number of -+this License, you may choose any version ever published by the Free Software -+Foundation. -+ -+ 10. If you wish to incorporate parts of the Program into other free -+programs whose distribution conditions are different, write to the author -+to ask for permission. For software which is copyrighted by the Free -+Software Foundation, write to the Free Software Foundation; we sometimes -+make exceptions for this. Our decision will be guided by the two goals -+of preserving the free status of all derivatives of our free software and -+of promoting the sharing and reuse of software generally. -+ -+ NO WARRANTY -+ -+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -+REPAIR OR CORRECTION. -+ -+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -+POSSIBILITY OF SUCH DAMAGES. -+ -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Programs -+ -+ If you develop a new program, and you want it to be of the greatest -+possible use to the public, the best way to achieve this is to make it -+free software which everyone can redistribute and change under these terms. -+ -+ To do so, attach the following notices to the program. It is safest -+to attach them to the start of each source file to most effectively -+convey the exclusion of warranty; and each file should have at least -+the "copyright" line and a pointer to where the full notice is found. -+ -+ <one line to give the program's name and a brief idea of what it does.> -+ Copyright (C) <year> <name of author> -+ -+ This program 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 -+ -+ -+Also add information on how to contact you by electronic and paper mail. -+ -+If the program is interactive, make it output a short notice like this -+when it starts in an interactive mode: -+ -+ Gnomovision version 69, Copyright (C) year name of author -+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. -+ This is free software, and you are welcome to redistribute it -+ under certain conditions; type `show c' for details. -+ -+The hypothetical commands `show w' and `show c' should show the appropriate -+parts of the General Public License. Of course, the commands you use may -+be called something other than `show w' and `show c'; they could even be -+mouse-clicks or menu items--whatever suits your program. -+ -+You should also get your employer (if you work as a programmer) or your -+school, if any, to sign a "copyright disclaimer" for the program, if -+necessary. Here is a sample; alter the names: -+ -+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program -+ `Gnomovision' (which makes passes at compilers) written by James Hacker. -+ -+ <signature of Ty Coon>, 1 April 1989 -+ Ty Coon, President of Vice -+ -+This General Public License does not permit incorporating your program into -+proprietary programs. If your program is a subroutine library, you may -+consider it more useful to permit linking proprietary applications with the -+library. If this is what you want to do, use the GNU Library General -+Public License instead of this License. -diff --git a/tools/dfu-util/Makefile.am b/tools/dfu-util/Makefile.am -new file mode 100644 -index 0000000..5ff2f58 ---- /dev/null -+++ b/tools/dfu-util/Makefile.am -@@ -0,0 +1,3 @@ -+SUBDIRS = src -+ -+EXTRA_DIST = autogen.sh -diff --git a/tools/dfu-util/Makefile.in b/tools/dfu-util/Makefile.in -new file mode 100644 -index 0000000..29322f5 ---- /dev/null -+++ b/tools/dfu-util/Makefile.in -@@ -0,0 +1,585 @@ -+# Makefile.in generated by automake 1.9.6 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004, 2005 Free Software Foundation, Inc. -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ -+srcdir = @srcdir@ -+top_srcdir = @top_srcdir@ -+VPATH = @srcdir@ -+pkgdatadir = $(datadir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkgincludedir = $(includedir)/@PACKAGE@ -+top_builddir = . -+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -+INSTALL = @INSTALL@ -+install_sh_DATA = $(install_sh) -c -m 644 -+install_sh_PROGRAM = $(install_sh) -c -+install_sh_SCRIPT = $(install_sh) -c -+INSTALL_HEADER = $(INSTALL_DATA) -+transform = $(program_transform_name) -+NORMAL_INSTALL = : -+PRE_INSTALL = : -+POST_INSTALL = : -+NORMAL_UNINSTALL = : -+PRE_UNINSTALL = : -+POST_UNINSTALL = : -+subdir = . -+DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ -+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ -+ $(top_srcdir)/configure COPYING m4/depcomp m4/install-sh \ -+ m4/missing -+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -+am__aclocal_m4_deps = $(top_srcdir)/configure.ac -+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -+ $(ACLOCAL_M4) -+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ -+ configure.lineno configure.status.lineno -+mkinstalldirs = $(install_sh) -d -+CONFIG_HEADER = config.h -+CONFIG_CLEAN_FILES = -+SOURCES = -+DIST_SOURCES = -+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -+ html-recursive info-recursive install-data-recursive \ -+ install-exec-recursive install-info-recursive \ -+ install-recursive installcheck-recursive installdirs-recursive \ -+ pdf-recursive ps-recursive uninstall-info-recursive \ -+ uninstall-recursive -+ETAGS = etags -+CTAGS = ctags -+DIST_SUBDIRS = $(SUBDIRS) -+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+distdir = $(PACKAGE)-$(VERSION) -+top_distdir = $(distdir) -+am__remove_distdir = \ -+ { test ! -d $(distdir) \ -+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ -+ && rm -fr $(distdir); }; } -+DIST_ARCHIVES = $(distdir).tar.gz -+GZIP_ENV = --best -+distuninstallcheck_listfiles = find . -type f -print -+distcleancheck_listfiles = find . -type f -print -+ACLOCAL = @ACLOCAL@ -+AMDEP_FALSE = @AMDEP_FALSE@ -+AMDEP_TRUE = @AMDEP_TRUE@ -+AMTAR = @AMTAR@ -+AUTOCONF = @AUTOCONF@ -+AUTOHEADER = @AUTOHEADER@ -+AUTOMAKE = @AUTOMAKE@ -+AWK = @AWK@ -+CC = @CC@ -+CCDEPMODE = @CCDEPMODE@ -+CFLAGS = @CFLAGS@ -+CPP = @CPP@ -+CPPFLAGS = @CPPFLAGS@ -+CYGPATH_W = @CYGPATH_W@ -+DEFS = @DEFS@ -+DEPDIR = @DEPDIR@ -+ECHO_C = @ECHO_C@ -+ECHO_N = @ECHO_N@ -+ECHO_T = @ECHO_T@ -+EGREP = @EGREP@ -+EXEEXT = @EXEEXT@ -+GREP = @GREP@ -+INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_PROGRAM = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ -+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LDFLAGS = @LDFLAGS@ -+LIBOBJS = @LIBOBJS@ -+LIBS = @LIBS@ -+LTLIBOBJS = @LTLIBOBJS@ -+MAINT = @MAINT@ -+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -+MAKEINFO = @MAKEINFO@ -+OBJEXT = @OBJEXT@ -+PACKAGE = @PACKAGE@ -+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -+PACKAGE_NAME = @PACKAGE_NAME@ -+PACKAGE_STRING = @PACKAGE_STRING@ -+PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_VERSION = @PACKAGE_VERSION@ -+PATH_SEPARATOR = @PATH_SEPARATOR@ -+PKG_CONFIG = @PKG_CONFIG@ -+SET_MAKE = @SET_MAKE@ -+SHELL = @SHELL@ -+STRIP = @STRIP@ -+USB_CFLAGS = @USB_CFLAGS@ -+USB_LIBS = @USB_LIBS@ -+VERSION = @VERSION@ -+ac_ct_CC = @ac_ct_CC@ -+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -+am__include = @am__include@ -+am__leading_dot = @am__leading_dot@ -+am__quote = @am__quote@ -+am__tar = @am__tar@ -+am__untar = @am__untar@ -+bindir = @bindir@ -+build_alias = @build_alias@ -+datadir = @datadir@ -+datarootdir = @datarootdir@ -+docdir = @docdir@ -+dvidir = @dvidir@ -+exec_prefix = @exec_prefix@ -+host_alias = @host_alias@ -+htmldir = @htmldir@ -+includedir = @includedir@ -+infodir = @infodir@ -+install_sh = @install_sh@ -+libdir = @libdir@ -+libexecdir = @libexecdir@ -+localedir = @localedir@ -+localstatedir = @localstatedir@ -+mandir = @mandir@ -+mkdir_p = @mkdir_p@ -+oldincludedir = @oldincludedir@ -+pdfdir = @pdfdir@ -+prefix = @prefix@ -+program_transform_name = @program_transform_name@ -+psdir = @psdir@ -+sbindir = @sbindir@ -+sharedstatedir = @sharedstatedir@ -+sysconfdir = @sysconfdir@ -+target_alias = @target_alias@ -+SUBDIRS = src -+EXTRA_DIST = autogen.sh -+all: config.h -+ $(MAKE) $(AM_MAKEFLAGS) all-recursive -+ -+.SUFFIXES: -+am--refresh: -+ @: -+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -+ @for dep in $?; do \ -+ case '$(am__configure_deps)' in \ -+ *$$dep*) \ -+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ -+ cd $(srcdir) && $(AUTOMAKE) --foreign \ -+ && exit 0; \ -+ exit 1;; \ -+ esac; \ -+ done; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ -+ cd $(top_srcdir) && \ -+ $(AUTOMAKE) --foreign Makefile -+.PRECIOUS: Makefile -+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -+ @case '$?' in \ -+ *config.status*) \ -+ echo ' $(SHELL) ./config.status'; \ -+ $(SHELL) ./config.status;; \ -+ *) \ -+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ -+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ -+ esac; -+ -+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -+ $(SHELL) ./config.status --recheck -+ -+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -+ cd $(srcdir) && $(AUTOCONF) -+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -+ -+config.h: stamp-h1 -+ @if test ! -f $@; then \ -+ rm -f stamp-h1; \ -+ $(MAKE) stamp-h1; \ -+ else :; fi -+ -+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status -+ @rm -f stamp-h1 -+ cd $(top_builddir) && $(SHELL) ./config.status config.h -+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -+ cd $(top_srcdir) && $(AUTOHEADER) -+ rm -f stamp-h1 -+ touch $@ -+ -+distclean-hdr: -+ -rm -f config.h stamp-h1 -+uninstall-info-am: -+ -+# This directory's subdirectories are mostly independent; you can cd -+# into them and run `make' without going through this Makefile. -+# To change the values of `make' variables: instead of editing Makefiles, -+# (1) if the variable is set in `config.status', edit `config.status' -+# (which will cause the Makefiles to be regenerated when you run `make'); -+# (2) otherwise, pass the desired values on the `make' command line. -+$(RECURSIVE_TARGETS): -+ @failcom='exit 1'; \ -+ for f in x $$MAKEFLAGS; do \ -+ case $$f in \ -+ *=* | --[!k]*);; \ -+ *k*) failcom='fail=yes';; \ -+ esac; \ -+ done; \ -+ dot_seen=no; \ -+ target=`echo $@ | sed s/-recursive//`; \ -+ list='$(SUBDIRS)'; for subdir in $$list; do \ -+ echo "Making $$target in $$subdir"; \ -+ if test "$$subdir" = "."; then \ -+ dot_seen=yes; \ -+ local_target="$$target-am"; \ -+ else \ -+ local_target="$$target"; \ -+ fi; \ -+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ || eval $$failcom; \ -+ done; \ -+ if test "$$dot_seen" = "no"; then \ -+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -+ fi; test -z "$$fail" -+ -+mostlyclean-recursive clean-recursive distclean-recursive \ -+maintainer-clean-recursive: -+ @failcom='exit 1'; \ -+ for f in x $$MAKEFLAGS; do \ -+ case $$f in \ -+ *=* | --[!k]*);; \ -+ *k*) failcom='fail=yes';; \ -+ esac; \ -+ done; \ -+ dot_seen=no; \ -+ case "$@" in \ -+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ -+ *) list='$(SUBDIRS)' ;; \ -+ esac; \ -+ rev=''; for subdir in $$list; do \ -+ if test "$$subdir" = "."; then :; else \ -+ rev="$$subdir $$rev"; \ -+ fi; \ -+ done; \ -+ rev="$$rev ."; \ -+ target=`echo $@ | sed s/-recursive//`; \ -+ for subdir in $$rev; do \ -+ echo "Making $$target in $$subdir"; \ -+ if test "$$subdir" = "."; then \ -+ local_target="$$target-am"; \ -+ else \ -+ local_target="$$target"; \ -+ fi; \ -+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ || eval $$failcom; \ -+ done && test -z "$$fail" -+tags-recursive: -+ list='$(SUBDIRS)'; for subdir in $$list; do \ -+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ done -+ctags-recursive: -+ list='$(SUBDIRS)'; for subdir in $$list; do \ -+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ done -+ -+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ mkid -fID $$unique -+tags: TAGS -+ -+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -+ include_option=--etags-include; \ -+ empty_fix=.; \ -+ else \ -+ include_option=--include; \ -+ empty_fix=; \ -+ fi; \ -+ list='$(SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ test ! -f $$subdir/TAGS || \ -+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ fi; \ -+ done; \ -+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ test -n "$$unique" || unique=$$empty_fix; \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$tags $$unique; \ -+ fi -+ctags: CTAGS -+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -+ $$tags $$unique -+ -+GTAGS: -+ here=`$(am__cd) $(top_builddir) && pwd` \ -+ && cd $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) $$here -+ -+distclean-tags: -+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -+ -+distdir: $(DISTFILES) -+ $(am__remove_distdir) -+ mkdir $(distdir) -+ $(mkdir_p) $(distdir)/m4 -+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -+ list='$(DISTFILES)'; for file in $$list; do \ -+ case $$file in \ -+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -+ esac; \ -+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -+ dir="/$$dir"; \ -+ $(mkdir_p) "$(distdir)$$dir"; \ -+ else \ -+ dir=''; \ -+ fi; \ -+ if test -d $$d/$$file; then \ -+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ fi; \ -+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ else \ -+ test -f $(distdir)/$$file \ -+ || cp -p $$d/$$file $(distdir)/$$file \ -+ || exit 1; \ -+ fi; \ -+ done -+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ test -d "$(distdir)/$$subdir" \ -+ || $(mkdir_p) "$(distdir)/$$subdir" \ -+ || exit 1; \ -+ distdir=`$(am__cd) $(distdir) && pwd`; \ -+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -+ (cd $$subdir && \ -+ $(MAKE) $(AM_MAKEFLAGS) \ -+ top_distdir="$$top_distdir" \ -+ distdir="$$distdir/$$subdir" \ -+ distdir) \ -+ || exit 1; \ -+ fi; \ -+ done -+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ -+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ -+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ -+ || chmod -R a+r $(distdir) -+dist-gzip: distdir -+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -+ $(am__remove_distdir) -+ -+dist-bzip2: distdir -+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 -+ $(am__remove_distdir) -+ -+dist-tarZ: distdir -+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z -+ $(am__remove_distdir) -+ -+dist-shar: distdir -+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz -+ $(am__remove_distdir) -+ -+dist-zip: distdir -+ -rm -f $(distdir).zip -+ zip -rq $(distdir).zip $(distdir) -+ $(am__remove_distdir) -+ -+dist dist-all: distdir -+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -+ $(am__remove_distdir) -+ -+# This target untars the dist file and tries a VPATH configuration. Then -+# it guarantees that the distribution is self-contained by making another -+# tarfile. -+distcheck: dist -+ case '$(DIST_ARCHIVES)' in \ -+ *.tar.gz*) \ -+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ -+ *.tar.bz2*) \ -+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ -+ *.tar.Z*) \ -+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ -+ *.shar.gz*) \ -+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ -+ *.zip*) \ -+ unzip $(distdir).zip ;;\ -+ esac -+ chmod -R a-w $(distdir); chmod a+w $(distdir) -+ mkdir $(distdir)/_build -+ mkdir $(distdir)/_inst -+ chmod a-w $(distdir) -+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ -+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ -+ && cd $(distdir)/_build \ -+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ -+ $(DISTCHECK_CONFIGURE_FLAGS) \ -+ && $(MAKE) $(AM_MAKEFLAGS) \ -+ && $(MAKE) $(AM_MAKEFLAGS) dvi \ -+ && $(MAKE) $(AM_MAKEFLAGS) check \ -+ && $(MAKE) $(AM_MAKEFLAGS) install \ -+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ -+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ -+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ -+ distuninstallcheck \ -+ && chmod -R a-w "$$dc_install_base" \ -+ && ({ \ -+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ -+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ -+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ -+ } || { rm -rf "$$dc_destdir"; exit 1; }) \ -+ && rm -rf "$$dc_destdir" \ -+ && $(MAKE) $(AM_MAKEFLAGS) dist \ -+ && rm -rf $(DIST_ARCHIVES) \ -+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck -+ $(am__remove_distdir) -+ @(echo "$(distdir) archives ready for distribution: "; \ -+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ -+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -+distuninstallcheck: -+ @cd $(distuninstallcheck_dir) \ -+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ -+ || { echo "ERROR: files left after uninstall:" ; \ -+ if test -n "$(DESTDIR)"; then \ -+ echo " (check DESTDIR support)"; \ -+ fi ; \ -+ $(distuninstallcheck_listfiles) ; \ -+ exit 1; } >&2 -+distcleancheck: distclean -+ @if test '$(srcdir)' = . ; then \ -+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ -+ exit 1 ; \ -+ fi -+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ -+ || { echo "ERROR: files left in build directory after distclean:" ; \ -+ $(distcleancheck_listfiles) ; \ -+ exit 1; } >&2 -+check-am: all-am -+check: check-recursive -+all-am: Makefile config.h -+installdirs: installdirs-recursive -+installdirs-am: -+install: install-recursive -+install-exec: install-exec-recursive -+install-data: install-data-recursive -+uninstall: uninstall-recursive -+ -+install-am: all-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ -+installcheck: installcheck-recursive -+install-strip: -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ `test -z '$(STRIP)' || \ -+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+mostlyclean-generic: -+ -+clean-generic: -+ -+distclean-generic: -+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -+maintainer-clean-generic: -+ @echo "This command is intended for maintainers to use" -+ @echo "it deletes files that may require special tools to rebuild." -+clean: clean-recursive -+ -+clean-am: clean-generic mostlyclean-am -+ -+distclean: distclean-recursive -+ -rm -f $(am__CONFIG_DISTCLEAN_FILES) -+ -rm -f Makefile -+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -+ -+dvi: dvi-recursive -+ -+dvi-am: -+ -+html: html-recursive -+ -+info: info-recursive -+ -+info-am: -+ -+install-data-am: -+ -+install-exec-am: -+ -+install-info: install-info-recursive -+ -+install-man: -+ -+installcheck-am: -+ -+maintainer-clean: maintainer-clean-recursive -+ -rm -f $(am__CONFIG_DISTCLEAN_FILES) -+ -rm -rf $(top_srcdir)/autom4te.cache -+ -rm -f Makefile -+maintainer-clean-am: distclean-am maintainer-clean-generic -+ -+mostlyclean: mostlyclean-recursive -+ -+mostlyclean-am: mostlyclean-generic -+ -+pdf: pdf-recursive -+ -+pdf-am: -+ -+ps: ps-recursive -+ -+ps-am: -+ -+uninstall-am: uninstall-info-am -+ -+uninstall-info: uninstall-info-recursive -+ -+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ -+ check-am clean clean-generic clean-recursive ctags \ -+ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ -+ dist-tarZ dist-zip distcheck distclean distclean-generic \ -+ distclean-hdr distclean-recursive distclean-tags \ -+ distcleancheck distdir distuninstallcheck dvi dvi-am html \ -+ html-am info info-am install install-am install-data \ -+ install-data-am install-exec install-exec-am install-info \ -+ install-info-am install-man install-strip installcheck \ -+ installcheck-am installdirs installdirs-am maintainer-clean \ -+ maintainer-clean-generic maintainer-clean-recursive \ -+ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ -+ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ -+ uninstall-info-am -+ -+# Tell versions [3.59,3.63) of GNU make to not export all variables. -+# Otherwise a system limit (for SysV at least) may be exceeded. -+.NOEXPORT: -diff --git a/tools/dfu-util/aclocal.m4 b/tools/dfu-util/aclocal.m4 -new file mode 100644 -index 0000000..617acf5 ---- /dev/null -+++ b/tools/dfu-util/aclocal.m4 -@@ -0,0 +1,1048 @@ -+# generated automatically by aclocal 1.9.6 -*- Autoconf -*- -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -+# 2005 Free Software Foundation, Inc. -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -+# -+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. -+# -+# This program 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. -+ -+# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -+# ---------------------------------- -+AC_DEFUN([PKG_PROG_PKG_CONFIG], -+[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -+m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl -+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then -+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -+fi -+if test -n "$PKG_CONFIG"; then -+ _pkg_min_version=m4_default([$1], [0.9.0]) -+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) -+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then -+ AC_MSG_RESULT([yes]) -+ else -+ AC_MSG_RESULT([no]) -+ PKG_CONFIG="" -+ fi -+ -+fi[]dnl -+])# PKG_PROG_PKG_CONFIG -+ -+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -+# -+# Check to see whether a particular set of modules exists. Similar -+# to PKG_CHECK_MODULES(), but does not set variables or print errors. -+# -+# -+# Similar to PKG_CHECK_MODULES, make sure that the first instance of -+# this or PKG_CHECK_MODULES is called, or make sure to call -+# PKG_CHECK_EXISTS manually -+# -------------------------------------------------------------- -+AC_DEFUN([PKG_CHECK_EXISTS], -+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -+if test -n "$PKG_CONFIG" && \ -+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then -+ m4_ifval([$2], [$2], [:]) -+m4_ifvaln([$3], [else -+ $3])dnl -+fi]) -+ -+ -+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -+# --------------------------------------------- -+m4_define([_PKG_CONFIG], -+[if test -n "$PKG_CONFIG"; then -+ if test -n "$$1"; then -+ pkg_cv_[]$1="$$1" -+ else -+ PKG_CHECK_EXISTS([$3], -+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], -+ [pkg_failed=yes]) -+ fi -+else -+ pkg_failed=untried -+fi[]dnl -+])# _PKG_CONFIG -+ -+# _PKG_SHORT_ERRORS_SUPPORTED -+# ----------------------------- -+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -+[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes -+else -+ _pkg_short_errors_supported=no -+fi[]dnl -+])# _PKG_SHORT_ERRORS_SUPPORTED -+ -+ -+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -+# [ACTION-IF-NOT-FOUND]) -+# -+# -+# Note that if there is a possibility the first call to -+# PKG_CHECK_MODULES might not happen, you should be sure to include an -+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -+# -+# -+# -------------------------------------------------------------- -+AC_DEFUN([PKG_CHECK_MODULES], -+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl -+ -+pkg_failed=no -+AC_MSG_CHECKING([for $1]) -+ -+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -+_PKG_CONFIG([$1][_LIBS], [libs], [$2]) -+ -+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -+and $1[]_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details.]) -+ -+if test $pkg_failed = yes; then -+ _PKG_SHORT_ERRORS_SUPPORTED -+ if test $_pkg_short_errors_supported = yes; then -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` -+ else -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD -+ -+ ifelse([$4], , [AC_MSG_ERROR(dnl -+[Package requirements ($2) were not met: -+ -+$$1_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+_PKG_TEXT -+])], -+ [$4]) -+elif test $pkg_failed = untried; then -+ ifelse([$4], , [AC_MSG_FAILURE(dnl -+[The pkg-config script could not be found or is too old. Make sure it -+is in your PATH or set the PKG_CONFIG environment variable to the full -+path to pkg-config. -+ -+_PKG_TEXT -+ -+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])], -+ [$4]) -+else -+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS -+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS -+ AC_MSG_RESULT([yes]) -+ ifelse([$3], , :, [$3]) -+fi[]dnl -+])# PKG_CHECK_MODULES -+ -+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# AM_AUTOMAKE_VERSION(VERSION) -+# ---------------------------- -+# Automake X.Y traces this macro to ensure aclocal.m4 has been -+# generated from the m4 files accompanying Automake X.Y. -+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) -+ -+# AM_SET_CURRENT_AUTOMAKE_VERSION -+# ------------------------------- -+# Call AM_AUTOMAKE_VERSION so it can be traced. -+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -+ [AM_AUTOMAKE_VERSION([1.9.6])]) -+ -+# AM_AUX_DIR_EXPAND -*- Autoconf -*- -+ -+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -+# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -+# -+# Of course, Automake must honor this variable whenever it calls a -+# tool from the auxiliary directory. The problem is that $srcdir (and -+# therefore $ac_aux_dir as well) can be either absolute or relative, -+# depending on how configure is run. This is pretty annoying, since -+# it makes $ac_aux_dir quite unusable in subdirectories: in the top -+# source directory, any form will work fine, but in subdirectories a -+# relative path needs to be adjusted first. -+# -+# $ac_aux_dir/missing -+# fails when called from a subdirectory if $ac_aux_dir is relative -+# $top_srcdir/$ac_aux_dir/missing -+# fails if $ac_aux_dir is absolute, -+# fails when called from a subdirectory in a VPATH build with -+# a relative $ac_aux_dir -+# -+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -+# are both prefixed by $srcdir. In an in-source build this is usually -+# harmless because $srcdir is `.', but things will broke when you -+# start a VPATH build or use an absolute $srcdir. -+# -+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -+# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -+# and then we would define $MISSING as -+# MISSING="\${SHELL} $am_aux_dir/missing" -+# This will work as long as MISSING is not called from configure, because -+# unfortunately $(top_srcdir) has no meaning in configure. -+# However there are other variables, like CC, which are often used in -+# configure, and could therefore not use this "fixed" $ac_aux_dir. -+# -+# Another solution, used here, is to always expand $ac_aux_dir to an -+# absolute PATH. The drawback is that using absolute paths prevent a -+# configured tree to be moved without reconfiguration. -+ -+AC_DEFUN([AM_AUX_DIR_EXPAND], -+[dnl Rely on autoconf to set up CDPATH properly. -+AC_PREREQ([2.50])dnl -+# expand $ac_aux_dir to an absolute path -+am_aux_dir=`cd $ac_aux_dir && pwd` -+]) -+ -+# AM_CONDITIONAL -*- Autoconf -*- -+ -+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 7 -+ -+# AM_CONDITIONAL(NAME, SHELL-CONDITION) -+# ------------------------------------- -+# Define a conditional. -+AC_DEFUN([AM_CONDITIONAL], -+[AC_PREREQ(2.52)dnl -+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], -+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -+AC_SUBST([$1_TRUE]) -+AC_SUBST([$1_FALSE]) -+if $2; then -+ $1_TRUE= -+ $1_FALSE='#' -+else -+ $1_TRUE='#' -+ $1_FALSE= -+fi -+AC_CONFIG_COMMANDS_PRE( -+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then -+ AC_MSG_ERROR([[conditional "$1" was never defined. -+Usually this means the macro was only invoked conditionally.]]) -+fi])]) -+ -+ -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 8 -+ -+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -+# written in clear, in which case automake, when reading aclocal.m4, -+# will think it sees a *use*, and therefore will trigger all it's -+# C support machinery. Also note that it means that autoscan, seeing -+# CC etc. in the Makefile, will ask for an AC_PROG_CC use... -+ -+ -+# _AM_DEPENDENCIES(NAME) -+# ---------------------- -+# See how the compiler implements dependency checking. -+# NAME is "CC", "CXX", "GCJ", or "OBJC". -+# We try a few techniques and use that to set a single cache variable. -+# -+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -+# dependency, and given that the user is not expected to run this macro, -+# just rely on AC_PROG_CC. -+AC_DEFUN([_AM_DEPENDENCIES], -+[AC_REQUIRE([AM_SET_DEPDIR])dnl -+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -+AC_REQUIRE([AM_MAKE_INCLUDE])dnl -+AC_REQUIRE([AM_DEP_TRACK])dnl -+ -+ifelse([$1], CC, [depcc="$CC" am_compiler_list=], -+ [$1], CXX, [depcc="$CXX" am_compiler_list=], -+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], -+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], -+ [depcc="$$1" am_compiler_list=]) -+ -+AC_CACHE_CHECK([dependency style of $depcc], -+ [am_cv_$1_dependencies_compiler_type], -+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -+ # We make a subdir and do the tests there. Otherwise we can end up -+ # making bogus files that we don't know about and never remove. For -+ # instance it was reported that on HP-UX the gcc test will end up -+ # making a dummy file named `D' -- because `-MD' means `put the output -+ # in D'. -+ mkdir conftest.dir -+ # Copy depcomp to subdir because otherwise we won't find it if we're -+ # using a relative directory. -+ cp "$am_depcomp" conftest.dir -+ cd conftest.dir -+ # We will build objects and dependencies in a subdirectory because -+ # it helps to detect inapplicable dependency modes. For instance -+ # both Tru64's cc and ICC support -MD to output dependencies as a -+ # side effect of compilation, but ICC will put the dependencies in -+ # the current directory while Tru64 will put them in the object -+ # directory. -+ mkdir sub -+ -+ am_cv_$1_dependencies_compiler_type=none -+ if test "$am_compiler_list" = ""; then -+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` -+ fi -+ for depmode in $am_compiler_list; do -+ # Setup a source with many dependencies, because some compilers -+ # like to wrap large dependency lists on column 80 (with \), and -+ # we should not choose a depcomp mode which is confused by this. -+ # -+ # We need to recreate these files for each test, as the compiler may -+ # overwrite some of them when testing with obscure command lines. -+ # This happens at least with the AIX C compiler. -+ : > sub/conftest.c -+ for i in 1 2 3 4 5 6; do -+ echo '#include "conftst'$i'.h"' >> sub/conftest.c -+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -+ # Solaris 8's {/usr,}/bin/sh. -+ touch sub/conftst$i.h -+ done -+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ -+ case $depmode in -+ nosideeffect) -+ # after this tag, mechanisms are not by side-effect, so they'll -+ # only be used when explicitly requested -+ if test "x$enable_dependency_tracking" = xyes; then -+ continue -+ else -+ break -+ fi -+ ;; -+ none) break ;; -+ esac -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. -+ if depmode=$depmode \ -+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ >/dev/null 2>conftest.err && -+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -+ # icc doesn't choke on unknown options, it will just issue warnings -+ # or remarks (even with -Werror). So we grep stderr for any message -+ # that says an option was ignored or not supported. -+ # When given -MP, icc 7.0 and 7.1 complain thusly: -+ # icc: Command line warning: ignoring option '-M'; no argument required -+ # The diagnosis changed in icc 8.0: -+ # icc: Command line remark: option '-MP' not supported -+ if (grep 'ignoring option' conftest.err || -+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -+ am_cv_$1_dependencies_compiler_type=$depmode -+ break -+ fi -+ fi -+ done -+ -+ cd .. -+ rm -rf conftest.dir -+else -+ am_cv_$1_dependencies_compiler_type=none -+fi -+]) -+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -+AM_CONDITIONAL([am__fastdep$1], [ -+ test "x$enable_dependency_tracking" != xno \ -+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -+]) -+ -+ -+# AM_SET_DEPDIR -+# ------------- -+# Choose a directory name for dependency files. -+# This macro is AC_REQUIREd in _AM_DEPENDENCIES -+AC_DEFUN([AM_SET_DEPDIR], -+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -+]) -+ -+ -+# AM_DEP_TRACK -+# ------------ -+AC_DEFUN([AM_DEP_TRACK], -+[AC_ARG_ENABLE(dependency-tracking, -+[ --disable-dependency-tracking speeds up one-time build -+ --enable-dependency-tracking do not reject slow dependency extractors]) -+if test "x$enable_dependency_tracking" != xno; then -+ am_depcomp="$ac_aux_dir/depcomp" -+ AMDEPBACKSLASH='\' -+fi -+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -+AC_SUBST([AMDEPBACKSLASH]) -+]) -+ -+# Generate code to set up dependency tracking. -*- Autoconf -*- -+ -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+#serial 3 -+ -+# _AM_OUTPUT_DEPENDENCY_COMMANDS -+# ------------------------------ -+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -+[for mf in $CONFIG_FILES; do -+ # Strip MF so we end up with the name of the file. -+ mf=`echo "$mf" | sed -e 's/:.*$//'` -+ # Check whether this is an Automake generated Makefile or not. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # So let's grep whole file. -+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -+ dirpart=`AS_DIRNAME("$mf")` -+ else -+ continue -+ fi -+ # Extract the definition of DEPDIR, am__include, and am__quote -+ # from the Makefile without running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ am__include=`sed -n 's/^am__include = //p' < "$mf"` -+ test -z "am__include" && continue -+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ # Find all dependency output files, they are included files with -+ # $(DEPDIR) in their names. We invoke sed twice because it is the -+ # simplest approach to changing $(DEPDIR) to its actual value in the -+ # expansion. -+ for file in `sed -n " -+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`AS_DIRNAME(["$file"])` -+ AS_MKDIR_P([$dirpart/$fdir]) -+ # echo "creating $dirpart/$file" -+ echo '# dummy' > "$dirpart/$file" -+ done -+done -+])# _AM_OUTPUT_DEPENDENCY_COMMANDS -+ -+ -+# AM_OUTPUT_DEPENDENCY_COMMANDS -+# ----------------------------- -+# This macro should only be invoked once -- use via AC_REQUIRE. -+# -+# This code is only required when automatic dependency tracking -+# is enabled. FIXME. This creates each `.P' file that we will -+# need in order to bootstrap the dependency handling code. -+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -+[AC_CONFIG_COMMANDS([depfiles], -+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], -+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -+]) -+ -+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 8 -+ -+# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) -+ -+# Do all the work for Automake. -*- Autoconf -*- -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 12 -+ -+# This macro actually does too much. Some checks are only needed if -+# your package does certain things. But this isn't really a big deal. -+ -+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -+# AM_INIT_AUTOMAKE([OPTIONS]) -+# ----------------------------------------------- -+# The call with PACKAGE and VERSION arguments is the old style -+# call (pre autoconf-2.50), which is being phased out. PACKAGE -+# and VERSION should now be passed to AC_INIT and removed from -+# the call to AM_INIT_AUTOMAKE. -+# We support both call styles for the transition. After -+# the next Automake release, Autoconf can make the AC_INIT -+# arguments mandatory, and then we can depend on a new Autoconf -+# release and drop the old call support. -+AC_DEFUN([AM_INIT_AUTOMAKE], -+[AC_PREREQ([2.58])dnl -+dnl Autoconf wants to disallow AM_ names. We explicitly allow -+dnl the ones we care about. -+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -+AC_REQUIRE([AC_PROG_INSTALL])dnl -+# test to see if srcdir already configured -+if test "`cd $srcdir && pwd`" != "`pwd`" && -+ test -f $srcdir/config.status; then -+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -+fi -+ -+# test whether we have cygpath -+if test -z "$CYGPATH_W"; then -+ if (cygpath --version) >/dev/null 2>/dev/null; then -+ CYGPATH_W='cygpath -w' -+ else -+ CYGPATH_W=echo -+ fi -+fi -+AC_SUBST([CYGPATH_W]) -+ -+# Define the identity of the package. -+dnl Distinguish between old-style and new-style calls. -+m4_ifval([$2], -+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl -+ AC_SUBST([PACKAGE], [$1])dnl -+ AC_SUBST([VERSION], [$2])], -+[_AM_SET_OPTIONS([$1])dnl -+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl -+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl -+ -+_AM_IF_OPTION([no-define],, -+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl -+ -+# Some tools Automake needs. -+AC_REQUIRE([AM_SANITY_CHECK])dnl -+AC_REQUIRE([AC_ARG_PROGRAM])dnl -+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -+AM_MISSING_PROG(AUTOCONF, autoconf) -+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -+AM_MISSING_PROG(AUTOHEADER, autoheader) -+AM_MISSING_PROG(MAKEINFO, makeinfo) -+AM_PROG_INSTALL_SH -+AM_PROG_INSTALL_STRIP -+AC_REQUIRE([AM_PROG_MKDIR_P])dnl -+# We need awk for the "check" target. The system "awk" is bad on -+# some platforms. -+AC_REQUIRE([AC_PROG_AWK])dnl -+AC_REQUIRE([AC_PROG_MAKE_SET])dnl -+AC_REQUIRE([AM_SET_LEADING_DOT])dnl -+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], -+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], -+ [_AM_PROG_TAR([v7])])]) -+_AM_IF_OPTION([no-dependencies],, -+[AC_PROVIDE_IFELSE([AC_PROG_CC], -+ [_AM_DEPENDENCIES(CC)], -+ [define([AC_PROG_CC], -+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -+AC_PROVIDE_IFELSE([AC_PROG_CXX], -+ [_AM_DEPENDENCIES(CXX)], -+ [define([AC_PROG_CXX], -+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -+]) -+]) -+ -+ -+# When config.status generates a header, we must update the stamp-h file. -+# This file resides in the same directory as the config header -+# that is generated. The stamp files are numbered to have different names. -+ -+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -+# loop where config.status creates the headers, so we can generate -+# our stamp files there. -+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -+[# Compute $1's index in $config_headers. -+_am_stamp_count=1 -+for _am_header in $config_headers :; do -+ case $_am_header in -+ $1 | $1:* ) -+ break ;; -+ * ) -+ _am_stamp_count=`expr $_am_stamp_count + 1` ;; -+ esac -+done -+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) -+ -+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# AM_PROG_INSTALL_SH -+# ------------------ -+# Define $install_sh. -+AC_DEFUN([AM_PROG_INSTALL_SH], -+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -+install_sh=${install_sh-"$am_aux_dir/install-sh"} -+AC_SUBST(install_sh)]) -+ -+# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 2 -+ -+# Check whether the underlying file-system supports filenames -+# with a leading dot. For instance MS-DOS doesn't. -+AC_DEFUN([AM_SET_LEADING_DOT], -+[rm -rf .tst 2>/dev/null -+mkdir .tst 2>/dev/null -+if test -d .tst; then -+ am__leading_dot=. -+else -+ am__leading_dot=_ -+fi -+rmdir .tst 2>/dev/null -+AC_SUBST([am__leading_dot])]) -+ -+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -+# From Jim Meyering -+ -+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 4 -+ -+AC_DEFUN([AM_MAINTAINER_MODE], -+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) -+ dnl maintainer-mode is disabled by default -+ AC_ARG_ENABLE(maintainer-mode, -+[ --enable-maintainer-mode enable make rules and dependencies not useful -+ (and sometimes confusing) to the casual installer], -+ USE_MAINTAINER_MODE=$enableval, -+ USE_MAINTAINER_MODE=no) -+ AC_MSG_RESULT([$USE_MAINTAINER_MODE]) -+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) -+ MAINT=$MAINTAINER_MODE_TRUE -+ AC_SUBST(MAINT)dnl -+] -+) -+ -+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) -+ -+# Check to see how 'make' treats includes. -*- Autoconf -*- -+ -+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 3 -+ -+# AM_MAKE_INCLUDE() -+# ----------------- -+# Check to see how make treats includes. -+AC_DEFUN([AM_MAKE_INCLUDE], -+[am_make=${MAKE-make} -+cat > confinc << 'END' -+am__doit: -+ @echo done -+.PHONY: am__doit -+END -+# If we don't find an include directive, just comment out the code. -+AC_MSG_CHECKING([for style of include used by $am_make]) -+am__include="#" -+am__quote= -+_am_result=none -+# First try GNU make style include. -+echo "include confinc" > confmf -+# We grep out `Entering directory' and `Leaving directory' -+# messages which can occur if `w' ends up in MAKEFLAGS. -+# In particular we don't look at `^make:' because GNU make might -+# be invoked under some other name (usually "gmake"), in which -+# case it prints its new name instead of `make'. -+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -+ am__include=include -+ am__quote= -+ _am_result=GNU -+fi -+# Now try BSD make style include. -+if test "$am__include" = "#"; then -+ echo '.include "confinc"' > confmf -+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ fi -+fi -+AC_SUBST([am__include]) -+AC_SUBST([am__quote]) -+AC_MSG_RESULT([$_am_result]) -+rm -f confinc confmf -+]) -+ -+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -+ -+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 4 -+ -+# AM_MISSING_PROG(NAME, PROGRAM) -+# ------------------------------ -+AC_DEFUN([AM_MISSING_PROG], -+[AC_REQUIRE([AM_MISSING_HAS_RUN]) -+$1=${$1-"${am_missing_run}$2"} -+AC_SUBST($1)]) -+ -+ -+# AM_MISSING_HAS_RUN -+# ------------------ -+# Define MISSING if not defined so far and test if it supports --run. -+# If it does, set am_missing_run to use it, otherwise, to nothing. -+AC_DEFUN([AM_MISSING_HAS_RUN], -+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+# Use eval to expand $SHELL -+if eval "$MISSING --run true"; then -+ am_missing_run="$MISSING --run " -+else -+ am_missing_run= -+ AC_MSG_WARN([`missing' script is too old or missing]) -+fi -+]) -+ -+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# AM_PROG_MKDIR_P -+# --------------- -+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -+# -+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -+# created by `make install' are always world readable, even if the -+# installer happens to have an overly restrictive umask (e.g. 077). -+# This was a mistake. There are at least two reasons why we must not -+# use `-m 0755': -+# - it causes special bits like SGID to be ignored, -+# - it may be too restrictive (some setups expect 775 directories). -+# -+# Do not use -m 0755 and let people choose whatever they expect by -+# setting umask. -+# -+# We cannot accept any implementation of `mkdir' that recognizes `-p'. -+# Some implementations (such as Solaris 8's) are not thread-safe: if a -+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -+# concurrently, both version can detect that a/ is missing, but only -+# one can create it and the other will error out. Consequently we -+# restrict ourselves to GNU make (using the --version option ensures -+# this.) -+AC_DEFUN([AM_PROG_MKDIR_P], -+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -+ # We used to keeping the `.' as first argument, in order to -+ # allow $(mkdir_p) to be used without argument. As in -+ # $(mkdir_p) $(somedir) -+ # where $(somedir) is conditionally defined. However this is wrong -+ # for two reasons: -+ # 1. if the package is installed by a user who cannot write `.' -+ # make install will fail, -+ # 2. the above comment should most certainly read -+ # $(mkdir_p) $(DESTDIR)$(somedir) -+ # so it does not work when $(somedir) is undefined and -+ # $(DESTDIR) is not. -+ # To support the latter case, we have to write -+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), -+ # so the `.' trick is pointless. -+ mkdir_p='mkdir -p --' -+else -+ # On NextStep and OpenStep, the `mkdir' command does not -+ # recognize any option. It will interpret all options as -+ # directories to create, and then abort because `.' already -+ # exists. -+ for d in ./-p ./--version; -+ do -+ test -d $d && rmdir $d -+ done -+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -+ if test -f "$ac_aux_dir/mkinstalldirs"; then -+ mkdir_p='$(mkinstalldirs)' -+ else -+ mkdir_p='$(install_sh) -d' -+ fi -+fi -+AC_SUBST([mkdir_p])]) -+ -+# Helper functions for option handling. -*- Autoconf -*- -+ -+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 3 -+ -+# _AM_MANGLE_OPTION(NAME) -+# ----------------------- -+AC_DEFUN([_AM_MANGLE_OPTION], -+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -+ -+# _AM_SET_OPTION(NAME) -+# ------------------------------ -+# Set option NAME. Presently that only means defining a flag for this option. -+AC_DEFUN([_AM_SET_OPTION], -+[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) -+ -+# _AM_SET_OPTIONS(OPTIONS) -+# ---------------------------------- -+# OPTIONS is a space-separated list of Automake options. -+AC_DEFUN([_AM_SET_OPTIONS], -+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -+ -+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -+# ------------------------------------------- -+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -+AC_DEFUN([_AM_IF_OPTION], -+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -+ -+# Check to make sure that the build environment is sane. -*- Autoconf -*- -+ -+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -+# Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 4 -+ -+# AM_SANITY_CHECK -+# --------------- -+AC_DEFUN([AM_SANITY_CHECK], -+[AC_MSG_CHECKING([whether build environment is sane]) -+# Just in case -+sleep 1 -+echo timestamp > conftest.file -+# Do `set' in a subshell so we don't clobber the current shell's -+# arguments. Must try -L first in case configure is actually a -+# symlink; some systems play weird games with the mod time of symlinks -+# (eg FreeBSD returns the mod time of the symlink's containing -+# directory). -+if ( -+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ if test "$[*]" = "X"; then -+ # -L didn't work. -+ set X `ls -t $srcdir/configure conftest.file` -+ fi -+ rm -f conftest.file -+ if test "$[*]" != "X $srcdir/configure conftest.file" \ -+ && test "$[*]" != "X conftest.file $srcdir/configure"; then -+ -+ # If neither matched, then we have a broken ls. This can happen -+ # if, for instance, CONFIG_SHELL is bash and it inherits a -+ # broken ls alias from the environment. This has actually -+ # happened. Such a system could not be considered "sane". -+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -+alias in your environment]) -+ fi -+ -+ test "$[2]" = conftest.file -+ ) -+then -+ # Ok. -+ : -+else -+ AC_MSG_ERROR([newly created file is older than distributed files! -+Check your system clock]) -+fi -+AC_MSG_RESULT(yes)]) -+ -+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# AM_PROG_INSTALL_STRIP -+# --------------------- -+# One issue with vendor `install' (even GNU) is that you can't -+# specify the program used to strip binaries. This is especially -+# annoying in cross-compiling environments, where the build's strip -+# is unlikely to handle the host's binaries. -+# Fortunately install-sh will honor a STRIPPROG variable, so we -+# always use install-sh in `make install-strip', and initialize -+# STRIPPROG with the value of the STRIP variable (set by the user). -+AC_DEFUN([AM_PROG_INSTALL_STRIP], -+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -+# Installed binaries are usually stripped using `strip' when the user -+# run `make install-strip'. However `strip' might not be the right -+# tool to use in cross-compilation environments, therefore Automake -+# will honor the `STRIP' environment variable to overrule this program. -+dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -+if test "$cross_compiling" != no; then -+ AC_CHECK_TOOL([STRIP], [strip], :) -+fi -+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -+AC_SUBST([INSTALL_STRIP_PROGRAM])]) -+ -+# Check how to create a tarball. -*- Autoconf -*- -+ -+# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# serial 2 -+ -+# _AM_PROG_TAR(FORMAT) -+# -------------------- -+# Check how to create a tarball in format FORMAT. -+# FORMAT should be one of `v7', `ustar', or `pax'. -+# -+# Substitute a variable $(am__tar) that is a command -+# writing to stdout a FORMAT-tarball containing the directory -+# $tardir. -+# tardir=directory && $(am__tar) > result.tar -+# -+# Substitute a variable $(am__untar) that extract such -+# a tarball read from stdin. -+# $(am__untar) < result.tar -+AC_DEFUN([_AM_PROG_TAR], -+[# Always define AMTAR for backward compatibility. -+AM_MISSING_PROG([AMTAR], [tar]) -+m4_if([$1], [v7], -+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], -+ [m4_case([$1], [ustar],, [pax],, -+ [m4_fatal([Unknown tar format])]) -+AC_MSG_CHECKING([how to create a $1 tar archive]) -+# Loop over all known methods to create a tar archive until one works. -+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -+_am_tools=${am_cv_prog_tar_$1-$_am_tools} -+# Do not fold the above two line into one, because Tru64 sh and -+# Solaris sh will not grok spaces in the rhs of `-'. -+for _am_tool in $_am_tools -+do -+ case $_am_tool in -+ gnutar) -+ for _am_tar in tar gnutar gtar; -+ do -+ AM_RUN_LOG([$_am_tar --version]) && break -+ done -+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' -+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' -+ am__untar="$_am_tar -xf -" -+ ;; -+ plaintar) -+ # Must skip GNU tar: if it does not support --format= it doesn't create -+ # ustar tarball either. -+ (tar --version) >/dev/null 2>&1 && continue -+ am__tar='tar chf - "$$tardir"' -+ am__tar_='tar chf - "$tardir"' -+ am__untar='tar xf -' -+ ;; -+ pax) -+ am__tar='pax -L -x $1 -w "$$tardir"' -+ am__tar_='pax -L -x $1 -w "$tardir"' -+ am__untar='pax -r' -+ ;; -+ cpio) -+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L' -+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L' -+ am__untar='cpio -i -H $1 -d' -+ ;; -+ none) -+ am__tar=false -+ am__tar_=false -+ am__untar=false -+ ;; -+ esac -+ -+ # If the value was cached, stop now. We just wanted to have am__tar -+ # and am__untar set. -+ test -n "${am_cv_prog_tar_$1}" && break -+ -+ # tar/untar a dummy directory, and stop if the command works -+ rm -rf conftest.dir -+ mkdir conftest.dir -+ echo GrepMe > conftest.dir/file -+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) -+ rm -rf conftest.dir -+ if test -s conftest.tar; then -+ AM_RUN_LOG([$am__untar <conftest.tar]) -+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break -+ fi -+done -+rm -rf conftest.dir -+ -+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -+AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -+AC_SUBST([am__tar]) -+AC_SUBST([am__untar]) -+]) # _AM_PROG_TAR -+ -diff --git a/tools/dfu-util/autogen.sh b/tools/dfu-util/autogen.sh -new file mode 100644 -index 0000000..6bd21eb ---- /dev/null -+++ b/tools/dfu-util/autogen.sh -@@ -0,0 +1,4 @@ -+#! /bin/sh -+AUTOMAKE="automake --foreign --add-missing --copy" -+export AUTOMAKE -+autoreconf -diff --git a/tools/dfu-util/config.h.in b/tools/dfu-util/config.h.in -new file mode 100644 -index 0000000..2a3e620 ---- /dev/null -+++ b/tools/dfu-util/config.h.in -@@ -0,0 +1,77 @@ -+/* config.h.in. Generated from configure.ac by autoheader. */ -+ -+/* Define to 1 if you have the <inttypes.h> header file. */ -+#undef HAVE_INTTYPES_H -+ -+/* Define to 1 if you have the `usbpath' library (-lusbpath). */ -+#undef HAVE_LIBUSBPATH -+ -+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and -+ to 0 otherwise. */ -+#undef HAVE_MALLOC -+ -+/* Define to 1 if you have the <memory.h> header file. */ -+#undef HAVE_MEMORY_H -+ -+/* Define to 1 if you have the `memset' function. */ -+#undef HAVE_MEMSET -+ -+/* Define to 1 if you have the <stdint.h> header file. */ -+#undef HAVE_STDINT_H -+ -+/* Define to 1 if you have the <stdio.h> header file. */ -+#undef HAVE_STDIO_H -+ -+/* Define to 1 if you have the <stdlib.h> header file. */ -+#undef HAVE_STDLIB_H -+ -+/* Define to 1 if you have the <strings.h> header file. */ -+#undef HAVE_STRINGS_H -+ -+/* Define to 1 if you have the <string.h> header file. */ -+#undef HAVE_STRING_H -+ -+/* Define to 1 if you have the <sys/stat.h> header file. */ -+#undef HAVE_SYS_STAT_H -+ -+/* Define to 1 if you have the <sys/types.h> header file. */ -+#undef HAVE_SYS_TYPES_H -+ -+/* Define to 1 if you have the <unistd.h> header file. */ -+#undef HAVE_UNISTD_H -+ -+/* Define to 1 if you have the <usbpath.h> header file. */ -+#undef HAVE_USBPATH_H -+ -+/* Name of package */ -+#undef PACKAGE -+ -+/* Define to the address where bug reports for this package should be sent. */ -+#undef PACKAGE_BUGREPORT -+ -+/* Define to the full name of this package. */ -+#undef PACKAGE_NAME -+ -+/* Define to the full name and version of this package. */ -+#undef PACKAGE_STRING -+ -+/* Define to the one symbol short name of this package. */ -+#undef PACKAGE_TARNAME -+ -+/* Define to the version of this package. */ -+#undef PACKAGE_VERSION -+ -+/* Define to 1 if you have the ANSI C header files. */ -+#undef STDC_HEADERS -+ -+/* Version number of package */ -+#undef VERSION -+ -+/* Define to empty if `const' does not conform to ANSI C. */ -+#undef const -+ -+/* Define to rpl_malloc if the replacement function should be used. */ -+#undef malloc -+ -+/* Define to `unsigned int' if <sys/types.h> does not define. */ -+#undef size_t -diff --git a/tools/dfu-util/configure b/tools/dfu-util/configure -new file mode 100644 -index 0000000..092fd11 ---- /dev/null -+++ b/tools/dfu-util/configure -@@ -0,0 +1,6517 @@ -+#! /bin/sh -+# Guess values for system-dependent variables and create Makefiles. -+# Generated by GNU Autoconf 2.60 for dfu-util 0.1. -+# -+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+# This configure script is free software; the Free Software Foundation -+# gives unlimited permission to copy, distribute and modify it. -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## -+ -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+ setopt NO_GLOB_SUBST -+else -+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+ -+# PATH needs CR -+# Avoid depending upon Character Ranges. -+as_cr_letters='abcdefghijklmnopqrstuvwxyz' -+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -+as_cr_Letters=$as_cr_letters$as_cr_LETTERS -+as_cr_digits='0123456789' -+as_cr_alnum=$as_cr_Letters$as_cr_digits -+ -+# The user is always right. -+if test "${PATH_SEPARATOR+set}" != set; then -+ echo "#! /bin/sh" >conf$$.sh -+ echo "exit 0" >>conf$$.sh -+ chmod +x conf$$.sh -+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -+ PATH_SEPARATOR=';' -+ else -+ PATH_SEPARATOR=: -+ fi -+ rm -f conf$$.sh -+fi -+ -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset -+else -+ as_unset=false -+fi -+ -+ -+# IFS -+# We need space, tab and new line, in precisely that order. Quoting is -+# there to prevent editors from complaining about space-tab. -+# (If _AS_PATH_WALK were called with IFS unset, it would disable word -+# splitting by setting IFS to empty value.) -+as_nl=' -+' -+IFS=" "" $as_nl" -+ -+# Find who we are. Look in the path if we contain no directory separator. -+case $0 in -+ *[\\/]* ) as_myself=$0 ;; -+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -+done -+IFS=$as_save_IFS -+ -+ ;; -+esac -+# We did not find ourselves, most probably we were run as `sh COMMAND' -+# in which case we are not to be found in the path. -+if test "x$as_myself" = x; then -+ as_myself=$0 -+fi -+if test ! -f "$as_myself"; then -+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 -+ { (exit 1); exit 1; } -+fi -+ -+# Work around bugs in pre-3.0 UWIN ksh. -+for as_var in ENV MAIL MAILPATH -+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+done -+PS1='$ ' -+PS2='> ' -+PS4='+ ' -+ -+# NLS nuisances. -+for as_var in \ -+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -+ LC_TELEPHONE LC_TIME -+do -+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -+ eval $as_var=C; export $as_var -+ else -+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+ fi -+done -+ -+# Required to use basename. -+if expr a : '\(a\)' >/dev/null 2>&1 && -+ test "X`expr 00001 : '.*\(...\)'`" = X001; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then -+ as_basename=basename -+else -+ as_basename=false -+fi -+ -+ -+# Name of the executable. -+as_me=`$as_basename -- "$0" || -+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| . 2>/dev/null || -+echo X/"$0" | -+ sed '/^.*\/\([^/][^/]*\)\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ -+# CDPATH. -+$as_unset CDPATH -+ -+ -+if test "x$CONFIG_SHELL" = x; then -+ if (eval ":") 2>/dev/null; then -+ as_have_required=yes -+else -+ as_have_required=no -+fi -+ -+ if test $as_have_required = yes && (eval ": -+(as_func_return () { -+ (exit \$1) -+} -+as_func_success () { -+ as_func_return 0 -+} -+as_func_failure () { -+ as_func_return 1 -+} -+as_func_ret_success () { -+ return 0 -+} -+as_func_ret_failure () { -+ return 1 -+} -+ -+exitcode=0 -+if as_func_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_success failed. -+fi -+ -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. -+fi -+ -+if as_func_ret_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_ret_success failed. -+fi -+ -+if as_func_ret_failure; then -+ exitcode=1 -+ echo as_func_ret_failure succeeded. -+fi -+ -+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then -+ : -+else -+ exitcode=1 -+ echo positional parameters were not saved. -+fi -+ -+test \$exitcode = 0) || { (exit 1); exit 1; } -+ -+( -+ as_lineno_1=\$LINENO -+ as_lineno_2=\$LINENO -+ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && -+ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -+") 2> /dev/null; then -+ : -+else -+ as_candidate_shells= -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ case $as_dir in -+ /*) -+ for as_base in sh bash ksh sh5; do -+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base" -+ done;; -+ esac -+done -+IFS=$as_save_IFS -+ -+ -+ for as_shell in $as_candidate_shells $SHELL; do -+ # Try only shells that exist, to save several forks. -+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } && -+ { ("$as_shell") 2> /dev/null <<\_ASEOF -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+ setopt NO_GLOB_SUBST -+else -+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+: -+_ASEOF -+}; then -+ CONFIG_SHELL=$as_shell -+ as_have_required=yes -+ if { "$as_shell" 2> /dev/null <<\_ASEOF -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+ setopt NO_GLOB_SUBST -+else -+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+: -+(as_func_return () { -+ (exit $1) -+} -+as_func_success () { -+ as_func_return 0 -+} -+as_func_failure () { -+ as_func_return 1 -+} -+as_func_ret_success () { -+ return 0 -+} -+as_func_ret_failure () { -+ return 1 -+} -+ -+exitcode=0 -+if as_func_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_success failed. -+fi -+ -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. -+fi -+ -+if as_func_ret_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_ret_success failed. -+fi -+ -+if as_func_ret_failure; then -+ exitcode=1 -+ echo as_func_ret_failure succeeded. -+fi -+ -+if ( set x; as_func_ret_success y && test x = "$1" ); then -+ : -+else -+ exitcode=1 -+ echo positional parameters were not saved. -+fi -+ -+test $exitcode = 0) || { (exit 1); exit 1; } -+ -+( -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } -+ -+_ASEOF -+}; then -+ break -+fi -+ -+fi -+ -+ done -+ -+ if test "x$CONFIG_SHELL" != x; then -+ for as_var in BASH_ENV ENV -+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+ done -+ export CONFIG_SHELL -+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -+fi -+ -+ -+ if test $as_have_required = no; then -+ echo This script requires a shell more modern than all the -+ echo shells that I found on your system. Please install a -+ echo modern shell, or manually run the script under such a -+ echo shell if you do have one. -+ { (exit 1); exit 1; } -+fi -+ -+ -+fi -+ -+fi -+ -+ -+ -+(eval "as_func_return () { -+ (exit \$1) -+} -+as_func_success () { -+ as_func_return 0 -+} -+as_func_failure () { -+ as_func_return 1 -+} -+as_func_ret_success () { -+ return 0 -+} -+as_func_ret_failure () { -+ return 1 -+} -+ -+exitcode=0 -+if as_func_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_success failed. -+fi -+ -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. -+fi -+ -+if as_func_ret_success; then -+ : -+else -+ exitcode=1 -+ echo as_func_ret_success failed. -+fi -+ -+if as_func_ret_failure; then -+ exitcode=1 -+ echo as_func_ret_failure succeeded. -+fi -+ -+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then -+ : -+else -+ exitcode=1 -+ echo positional parameters were not saved. -+fi -+ -+test \$exitcode = 0") || { -+ echo No shell found that supports shell functions. -+ echo Please tell autoconf@gnu.org about your system, -+ echo including any error possibly output before this -+ echo message -+} -+ -+ -+ -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { -+ -+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -+ # uniformly replaced by the line number. The first 'sed' inserts a -+ # line-number line after each line using $LINENO; the second 'sed' -+ # does the real work. The second script uses 'N' to pair each -+ # line-number line with the line containing $LINENO, and appends -+ # trailing '-' during substitution so that $LINENO is not a special -+ # case at line end. -+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -+ # scripts with optimization help from Paolo Bonzini. Blame Lee -+ # E. McMahon (1931-1989) for sed's syntax. :-) -+ sed -n ' -+ p -+ /[$]LINENO/= -+ ' <$as_myself | -+ sed ' -+ s/[$]LINENO.*/&-/ -+ t lineno -+ b -+ :lineno -+ N -+ :loop -+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ -+ t loop -+ s/-\n.*// -+ ' >$as_me.lineno && -+ chmod +x "$as_me.lineno" || -+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 -+ { (exit 1); exit 1; }; } -+ -+ # Don't try to exec as it changes $[0], causing all sort of problems -+ # (the dirname of $[0] is not the place where we might find the -+ # original and so on. Autoconf is especially sensitive to this). -+ . "./$as_me.lineno" -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -+ as_dirname=dirname -+else -+ as_dirname=false -+fi -+ -+ECHO_C= ECHO_N= ECHO_T= -+case `echo -n x` in -+-n*) -+ case `echo 'x\c'` in -+ *c*) ECHO_T=' ';; # ECHO_T is single tab character. -+ *) ECHO_C='\c';; -+ esac;; -+*) -+ ECHO_N='-n';; -+esac -+ -+if expr a : '\(a\)' >/dev/null 2>&1 && -+ test "X`expr 00001 : '.*\(...\)'`" = X001; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+rm -f conf$$ conf$$.exe conf$$.file -+if test -d conf$$.dir; then -+ rm -f conf$$.dir/conf$$.file -+else -+ rm -f conf$$.dir -+ mkdir conf$$.dir -+fi -+echo >conf$$.file -+if ln -s conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s='ln -s' -+ # ... but there are two gotchas: -+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. -+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. -+ # In both cases, we have to default to `cp -p'. -+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || -+ as_ln_s='cp -p' -+elif ln conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s=ln -+else -+ as_ln_s='cp -p' -+fi -+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -+rmdir conf$$.dir 2>/dev/null -+ -+if mkdir -p . 2>/dev/null; then -+ as_mkdir_p=: -+else -+ test -d ./-p && rmdir ./-p -+ as_mkdir_p=false -+fi -+ -+# Find out whether ``test -x'' works. Don't use a zero-byte file, as -+# systems may use methods other than mode bits to determine executability. -+cat >conf$$.file <<_ASEOF -+#! /bin/sh -+exit 0 -+_ASEOF -+chmod +x conf$$.file -+if test -x conf$$.file >/dev/null 2>&1; then -+ as_executable_p="test -x" -+else -+ as_executable_p=: -+fi -+rm -f conf$$.file -+ -+# Sed expression to map a string onto a valid CPP name. -+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -+ -+# Sed expression to map a string onto a valid variable name. -+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -+ -+ -+ -+exec 7<&0 </dev/null 6>&1 -+ -+# Name of the host. -+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -+# so uname gets run too. -+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -+ -+# -+# Initializations. -+# -+ac_default_prefix=/usr/local -+ac_clean_files= -+ac_config_libobj_dir=. -+LIBOBJS= -+cross_compiling=no -+subdirs= -+MFLAGS= -+MAKEFLAGS= -+SHELL=${CONFIG_SHELL-/bin/sh} -+ -+# Identity of this package. -+PACKAGE_NAME='dfu-util' -+PACKAGE_TARNAME='dfu-util' -+PACKAGE_VERSION='0.1' -+PACKAGE_STRING='dfu-util 0.1' -+PACKAGE_BUGREPORT='' -+ -+# Factoring default headers for most tests. -+ac_includes_default="\ -+#include <stdio.h> -+#if HAVE_SYS_TYPES_H -+# include <sys/types.h> -+#endif -+#if HAVE_SYS_STAT_H -+# include <sys/stat.h> -+#endif -+#if STDC_HEADERS -+# include <stdlib.h> -+# include <stddef.h> -+#else -+# if HAVE_STDLIB_H -+# include <stdlib.h> -+# endif -+#endif -+#if HAVE_STRING_H -+# if !STDC_HEADERS && HAVE_MEMORY_H -+# include <memory.h> -+# endif -+# include <string.h> -+#endif -+#if HAVE_STRINGS_H -+# include <strings.h> -+#endif -+#if HAVE_INTTYPES_H -+# include <inttypes.h> -+#endif -+#if HAVE_STDINT_H -+# include <stdint.h> -+#endif -+#if HAVE_UNISTD_H -+# include <unistd.h> -+#endif" -+ -+ac_subst_vars='SHELL -+PATH_SEPARATOR -+PACKAGE_NAME -+PACKAGE_TARNAME -+PACKAGE_VERSION -+PACKAGE_STRING -+PACKAGE_BUGREPORT -+exec_prefix -+prefix -+program_transform_name -+bindir -+sbindir -+libexecdir -+datarootdir -+datadir -+sysconfdir -+sharedstatedir -+localstatedir -+includedir -+oldincludedir -+docdir -+infodir -+htmldir -+dvidir -+pdfdir -+psdir -+libdir -+localedir -+mandir -+DEFS -+ECHO_C -+ECHO_N -+ECHO_T -+LIBS -+build_alias -+host_alias -+target_alias -+INSTALL_PROGRAM -+INSTALL_SCRIPT -+INSTALL_DATA -+CYGPATH_W -+PACKAGE -+VERSION -+ACLOCAL -+AUTOCONF -+AUTOMAKE -+AUTOHEADER -+MAKEINFO -+install_sh -+STRIP -+INSTALL_STRIP_PROGRAM -+mkdir_p -+AWK -+SET_MAKE -+am__leading_dot -+AMTAR -+am__tar -+am__untar -+MAINTAINER_MODE_TRUE -+MAINTAINER_MODE_FALSE -+MAINT -+CC -+CFLAGS -+LDFLAGS -+CPPFLAGS -+ac_ct_CC -+EXEEXT -+OBJEXT -+DEPDIR -+am__include -+am__quote -+AMDEP_TRUE -+AMDEP_FALSE -+AMDEPBACKSLASH -+CCDEPMODE -+am__fastdepCC_TRUE -+am__fastdepCC_FALSE -+PKG_CONFIG -+USB_CFLAGS -+USB_LIBS -+CPP -+GREP -+EGREP -+LIBOBJS -+LTLIBOBJS' -+ac_subst_files='' -+ ac_precious_vars='build_alias -+host_alias -+target_alias -+CC -+CFLAGS -+LDFLAGS -+CPPFLAGS -+PKG_CONFIG -+USB_CFLAGS -+USB_LIBS -+CPP' -+ -+ -+# Initialize some variables set by options. -+ac_init_help= -+ac_init_version=false -+# The variables have the same names as the options, with -+# dashes changed to underlines. -+cache_file=/dev/null -+exec_prefix=NONE -+no_create= -+no_recursion= -+prefix=NONE -+program_prefix=NONE -+program_suffix=NONE -+program_transform_name=s,x,x, -+silent= -+site= -+srcdir= -+verbose= -+x_includes=NONE -+x_libraries=NONE -+ -+# Installation directory options. -+# These are left unexpanded so users can "make install exec_prefix=/foo" -+# and all the variables that are supposed to be based on exec_prefix -+# by default will actually change. -+# Use braces instead of parens because sh, perl, etc. also accept them. -+# (The list follows the same order as the GNU Coding Standards.) -+bindir='${exec_prefix}/bin' -+sbindir='${exec_prefix}/sbin' -+libexecdir='${exec_prefix}/libexec' -+datarootdir='${prefix}/share' -+datadir='${datarootdir}' -+sysconfdir='${prefix}/etc' -+sharedstatedir='${prefix}/com' -+localstatedir='${prefix}/var' -+includedir='${prefix}/include' -+oldincludedir='/usr/include' -+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -+infodir='${datarootdir}/info' -+htmldir='${docdir}' -+dvidir='${docdir}' -+pdfdir='${docdir}' -+psdir='${docdir}' -+libdir='${exec_prefix}/lib' -+localedir='${datarootdir}/locale' -+mandir='${datarootdir}/man' -+ -+ac_prev= -+ac_dashdash= -+for ac_option -+do -+ # If the previous option needs an argument, assign it. -+ if test -n "$ac_prev"; then -+ eval $ac_prev=\$ac_option -+ ac_prev= -+ continue -+ fi -+ -+ case $ac_option in -+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; -+ *) ac_optarg=yes ;; -+ esac -+ -+ # Accept the important Cygnus configure options, so we can diagnose typos. -+ -+ case $ac_dashdash$ac_option in -+ --) -+ ac_dashdash=yes ;; -+ -+ -bindir | --bindir | --bindi | --bind | --bin | --bi) -+ ac_prev=bindir ;; -+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) -+ bindir=$ac_optarg ;; -+ -+ -build | --build | --buil | --bui | --bu) -+ ac_prev=build_alias ;; -+ -build=* | --build=* | --buil=* | --bui=* | --bu=*) -+ build_alias=$ac_optarg ;; -+ -+ -cache-file | --cache-file | --cache-fil | --cache-fi \ -+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) -+ ac_prev=cache_file ;; -+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ -+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) -+ cache_file=$ac_optarg ;; -+ -+ --config-cache | -C) -+ cache_file=config.cache ;; -+ -+ -datadir | --datadir | --datadi | --datad) -+ ac_prev=datadir ;; -+ -datadir=* | --datadir=* | --datadi=* | --datad=*) -+ datadir=$ac_optarg ;; -+ -+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ -+ | --dataroo | --dataro | --datar) -+ ac_prev=datarootdir ;; -+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ -+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) -+ datarootdir=$ac_optarg ;; -+ -+ -disable-* | --disable-*) -+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -+ { (exit 1); exit 1; }; } -+ ac_feature=`echo $ac_feature | sed 's/-/_/g'` -+ eval enable_$ac_feature=no ;; -+ -+ -docdir | --docdir | --docdi | --doc | --do) -+ ac_prev=docdir ;; -+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) -+ docdir=$ac_optarg ;; -+ -+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) -+ ac_prev=dvidir ;; -+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) -+ dvidir=$ac_optarg ;; -+ -+ -enable-* | --enable-*) -+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -+ { (exit 1); exit 1; }; } -+ ac_feature=`echo $ac_feature | sed 's/-/_/g'` -+ eval enable_$ac_feature=\$ac_optarg ;; -+ -+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ -+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ -+ | --exec | --exe | --ex) -+ ac_prev=exec_prefix ;; -+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ -+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ -+ | --exec=* | --exe=* | --ex=*) -+ exec_prefix=$ac_optarg ;; -+ -+ -gas | --gas | --ga | --g) -+ # Obsolete; use --with-gas. -+ with_gas=yes ;; -+ -+ -help | --help | --hel | --he | -h) -+ ac_init_help=long ;; -+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) -+ ac_init_help=recursive ;; -+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) -+ ac_init_help=short ;; -+ -+ -host | --host | --hos | --ho) -+ ac_prev=host_alias ;; -+ -host=* | --host=* | --hos=* | --ho=*) -+ host_alias=$ac_optarg ;; -+ -+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) -+ ac_prev=htmldir ;; -+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ -+ | --ht=*) -+ htmldir=$ac_optarg ;; -+ -+ -includedir | --includedir | --includedi | --included | --include \ -+ | --includ | --inclu | --incl | --inc) -+ ac_prev=includedir ;; -+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ -+ | --includ=* | --inclu=* | --incl=* | --inc=*) -+ includedir=$ac_optarg ;; -+ -+ -infodir | --infodir | --infodi | --infod | --info | --inf) -+ ac_prev=infodir ;; -+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) -+ infodir=$ac_optarg ;; -+ -+ -libdir | --libdir | --libdi | --libd) -+ ac_prev=libdir ;; -+ -libdir=* | --libdir=* | --libdi=* | --libd=*) -+ libdir=$ac_optarg ;; -+ -+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ -+ | --libexe | --libex | --libe) -+ ac_prev=libexecdir ;; -+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ -+ | --libexe=* | --libex=* | --libe=*) -+ libexecdir=$ac_optarg ;; -+ -+ -localedir | --localedir | --localedi | --localed | --locale) -+ ac_prev=localedir ;; -+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) -+ localedir=$ac_optarg ;; -+ -+ -localstatedir | --localstatedir | --localstatedi | --localstated \ -+ | --localstate | --localstat | --localsta | --localst | --locals) -+ ac_prev=localstatedir ;; -+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ -+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) -+ localstatedir=$ac_optarg ;; -+ -+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) -+ ac_prev=mandir ;; -+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) -+ mandir=$ac_optarg ;; -+ -+ -nfp | --nfp | --nf) -+ # Obsolete; use --without-fp. -+ with_fp=no ;; -+ -+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ -+ | --no-cr | --no-c | -n) -+ no_create=yes ;; -+ -+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ -+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) -+ no_recursion=yes ;; -+ -+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ -+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ -+ | --oldin | --oldi | --old | --ol | --o) -+ ac_prev=oldincludedir ;; -+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ -+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ -+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) -+ oldincludedir=$ac_optarg ;; -+ -+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) -+ ac_prev=prefix ;; -+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) -+ prefix=$ac_optarg ;; -+ -+ -program-prefix | --program-prefix | --program-prefi | --program-pref \ -+ | --program-pre | --program-pr | --program-p) -+ ac_prev=program_prefix ;; -+ -program-prefix=* | --program-prefix=* | --program-prefi=* \ -+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) -+ program_prefix=$ac_optarg ;; -+ -+ -program-suffix | --program-suffix | --program-suffi | --program-suff \ -+ | --program-suf | --program-su | --program-s) -+ ac_prev=program_suffix ;; -+ -program-suffix=* | --program-suffix=* | --program-suffi=* \ -+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) -+ program_suffix=$ac_optarg ;; -+ -+ -program-transform-name | --program-transform-name \ -+ | --program-transform-nam | --program-transform-na \ -+ | --program-transform-n | --program-transform- \ -+ | --program-transform | --program-transfor \ -+ | --program-transfo | --program-transf \ -+ | --program-trans | --program-tran \ -+ | --progr-tra | --program-tr | --program-t) -+ ac_prev=program_transform_name ;; -+ -program-transform-name=* | --program-transform-name=* \ -+ | --program-transform-nam=* | --program-transform-na=* \ -+ | --program-transform-n=* | --program-transform-=* \ -+ | --program-transform=* | --program-transfor=* \ -+ | --program-transfo=* | --program-transf=* \ -+ | --program-trans=* | --program-tran=* \ -+ | --progr-tra=* | --program-tr=* | --program-t=*) -+ program_transform_name=$ac_optarg ;; -+ -+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) -+ ac_prev=pdfdir ;; -+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) -+ pdfdir=$ac_optarg ;; -+ -+ -psdir | --psdir | --psdi | --psd | --ps) -+ ac_prev=psdir ;; -+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) -+ psdir=$ac_optarg ;; -+ -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil) -+ silent=yes ;; -+ -+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -+ ac_prev=sbindir ;; -+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -+ | --sbi=* | --sb=*) -+ sbindir=$ac_optarg ;; -+ -+ -sharedstatedir | --sharedstatedir | --sharedstatedi \ -+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ -+ | --sharedst | --shareds | --shared | --share | --shar \ -+ | --sha | --sh) -+ ac_prev=sharedstatedir ;; -+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ -+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ -+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ -+ | --sha=* | --sh=*) -+ sharedstatedir=$ac_optarg ;; -+ -+ -site | --site | --sit) -+ ac_prev=site ;; -+ -site=* | --site=* | --sit=*) -+ site=$ac_optarg ;; -+ -+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) -+ ac_prev=srcdir ;; -+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) -+ srcdir=$ac_optarg ;; -+ -+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ -+ | --syscon | --sysco | --sysc | --sys | --sy) -+ ac_prev=sysconfdir ;; -+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ -+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) -+ sysconfdir=$ac_optarg ;; -+ -+ -target | --target | --targe | --targ | --tar | --ta | --t) -+ ac_prev=target_alias ;; -+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) -+ target_alias=$ac_optarg ;; -+ -+ -v | -verbose | --verbose | --verbos | --verbo | --verb) -+ verbose=yes ;; -+ -+ -version | --version | --versio | --versi | --vers | -V) -+ ac_init_version=: ;; -+ -+ -with-* | --with-*) -+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid package name: $ac_package" >&2 -+ { (exit 1); exit 1; }; } -+ ac_package=`echo $ac_package| sed 's/-/_/g'` -+ eval with_$ac_package=\$ac_optarg ;; -+ -+ -without-* | --without-*) -+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid package name: $ac_package" >&2 -+ { (exit 1); exit 1; }; } -+ ac_package=`echo $ac_package | sed 's/-/_/g'` -+ eval with_$ac_package=no ;; -+ -+ --x) -+ # Obsolete; use --with-x. -+ with_x=yes ;; -+ -+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ -+ | --x-incl | --x-inc | --x-in | --x-i) -+ ac_prev=x_includes ;; -+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ -+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) -+ x_includes=$ac_optarg ;; -+ -+ -x-libraries | --x-libraries | --x-librarie | --x-librari \ -+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) -+ ac_prev=x_libraries ;; -+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ -+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) -+ x_libraries=$ac_optarg ;; -+ -+ -*) { echo "$as_me: error: unrecognized option: $ac_option -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } -+ ;; -+ -+ *=*) -+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` -+ # Reject names that are not valid shell variable names. -+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && -+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 -+ { (exit 1); exit 1; }; } -+ eval $ac_envvar=\$ac_optarg -+ export $ac_envvar ;; -+ -+ *) -+ # FIXME: should be removed in autoconf 3.0. -+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2 -+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && -+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2 -+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} -+ ;; -+ -+ esac -+done -+ -+if test -n "$ac_prev"; then -+ ac_option=--`echo $ac_prev | sed 's/_/-/g'` -+ { echo "$as_me: error: missing argument to $ac_option" >&2 -+ { (exit 1); exit 1; }; } -+fi -+ -+# Be sure to have absolute directory names. -+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ -+ datadir sysconfdir sharedstatedir localstatedir includedir \ -+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ -+ libdir localedir mandir -+do -+ eval ac_val=\$$ac_var -+ case $ac_val in -+ [\\/$]* | ?:[\\/]* ) continue;; -+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;; -+ esac -+ { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -+ { (exit 1); exit 1; }; } -+done -+ -+# There might be people who depend on the old broken behavior: `$host' -+# used to hold the argument of --host etc. -+# FIXME: To remove some day. -+build=$build_alias -+host=$host_alias -+target=$target_alias -+ -+# FIXME: To remove some day. -+if test "x$host_alias" != x; then -+ if test "x$build_alias" = x; then -+ cross_compiling=maybe -+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. -+ If a cross compiler is detected then cross compile mode will be used." >&2 -+ elif test "x$build_alias" != "x$host_alias"; then -+ cross_compiling=yes -+ fi -+fi -+ -+ac_tool_prefix= -+test -n "$host_alias" && ac_tool_prefix=$host_alias- -+ -+test "$silent" = yes && exec 6>/dev/null -+ -+ -+ac_pwd=`pwd` && test -n "$ac_pwd" && -+ac_ls_di=`ls -di .` && -+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || -+ { echo "$as_me: error: Working directory cannot be determined" >&2 -+ { (exit 1); exit 1; }; } -+test "X$ac_ls_di" = "X$ac_pwd_ls_di" || -+ { echo "$as_me: error: pwd does not report name of working directory" >&2 -+ { (exit 1); exit 1; }; } -+ -+ -+# Find the source files, if location was not specified. -+if test -z "$srcdir"; then -+ ac_srcdir_defaulted=yes -+ # Try the directory containing this script, then the parent directory. -+ ac_confdir=`$as_dirname -- "$0" || -+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$0" : 'X\(//\)[^/]' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$0" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ srcdir=$ac_confdir -+ if test ! -r "$srcdir/$ac_unique_file"; then -+ srcdir=.. -+ fi -+else -+ ac_srcdir_defaulted=no -+fi -+if test ! -r "$srcdir/$ac_unique_file"; then -+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." -+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 -+ { (exit 1); exit 1; }; } -+fi -+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -+ac_abs_confdir=`( -+ cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 -+ { (exit 1); exit 1; }; } -+ pwd)` -+# When building in place, set srcdir=. -+if test "$ac_abs_confdir" = "$ac_pwd"; then -+ srcdir=. -+fi -+# Remove unnecessary trailing slashes from srcdir. -+# Double slashes in file names in object file debugging info -+# mess up M-x gdb in Emacs. -+case $srcdir in -+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -+esac -+for ac_var in $ac_precious_vars; do -+ eval ac_env_${ac_var}_set=\${${ac_var}+set} -+ eval ac_env_${ac_var}_value=\$${ac_var} -+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} -+ eval ac_cv_env_${ac_var}_value=\$${ac_var} -+done -+ -+# -+# Report the --help message. -+# -+if test "$ac_init_help" = "long"; then -+ # Omit some internal or obsolete options to make the list less imposing. -+ # This message is too long to be a string in the A/UX 3.1 sh. -+ cat <<_ACEOF -+\`configure' configures dfu-util 0.1 to adapt to many kinds of systems. -+ -+Usage: $0 [OPTION]... [VAR=VALUE]... -+ -+To assign environment variables (e.g., CC, CFLAGS...), specify them as -+VAR=VALUE. See below for descriptions of some of the useful variables. -+ -+Defaults for the options are specified in brackets. -+ -+Configuration: -+ -h, --help display this help and exit -+ --help=short display options specific to this package -+ --help=recursive display the short help of all the included packages -+ -V, --version display version information and exit -+ -q, --quiet, --silent do not print \`checking...' messages -+ --cache-file=FILE cache test results in FILE [disabled] -+ -C, --config-cache alias for \`--cache-file=config.cache' -+ -n, --no-create do not create output files -+ --srcdir=DIR find the sources in DIR [configure dir or \`..'] -+ -+Installation directories: -+ --prefix=PREFIX install architecture-independent files in PREFIX -+ [$ac_default_prefix] -+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX -+ [PREFIX] -+ -+By default, \`make install' will install all the files in -+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -+an installation prefix other than \`$ac_default_prefix' using \`--prefix', -+for instance \`--prefix=\$HOME'. -+ -+For better control, use the options below. -+ -+Fine tuning of the installation directories: -+ --bindir=DIR user executables [EPREFIX/bin] -+ --sbindir=DIR system admin executables [EPREFIX/sbin] -+ --libexecdir=DIR program executables [EPREFIX/libexec] -+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] -+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] -+ --localstatedir=DIR modifiable single-machine data [PREFIX/var] -+ --libdir=DIR object code libraries [EPREFIX/lib] -+ --includedir=DIR C header files [PREFIX/include] -+ --oldincludedir=DIR C header files for non-gcc [/usr/include] -+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] -+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] -+ --infodir=DIR info documentation [DATAROOTDIR/info] -+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale] -+ --mandir=DIR man documentation [DATAROOTDIR/man] -+ --docdir=DIR documentation root [DATAROOTDIR/doc/dfu-util] -+ --htmldir=DIR html documentation [DOCDIR] -+ --dvidir=DIR dvi documentation [DOCDIR] -+ --pdfdir=DIR pdf documentation [DOCDIR] -+ --psdir=DIR ps documentation [DOCDIR] -+_ACEOF -+ -+ cat <<\_ACEOF -+ -+Program names: -+ --program-prefix=PREFIX prepend PREFIX to installed program names -+ --program-suffix=SUFFIX append SUFFIX to installed program names -+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names -+_ACEOF -+fi -+ -+if test -n "$ac_init_help"; then -+ case $ac_init_help in -+ short | recursive ) echo "Configuration of dfu-util 0.1:";; -+ esac -+ cat <<\_ACEOF -+ -+Optional Features: -+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) -+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] -+ --enable-maintainer-mode enable make rules and dependencies not useful -+ (and sometimes confusing) to the casual installer -+ --disable-dependency-tracking speeds up one-time build -+ --enable-dependency-tracking do not reject slow dependency extractors -+ -+Some influential environment variables: -+ CC C compiler command -+ CFLAGS C compiler flags -+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a -+ nonstandard directory <lib dir> -+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if -+ you have headers in a nonstandard directory <include dir> -+ PKG_CONFIG path to pkg-config utility -+ USB_CFLAGS C compiler flags for USB, overriding pkg-config -+ USB_LIBS linker flags for USB, overriding pkg-config -+ CPP C preprocessor -+ -+Use these variables to override the choices made by `configure' or to help -+it to find libraries and programs with nonstandard names/locations. -+ -+_ACEOF -+ac_status=$? -+fi -+ -+if test "$ac_init_help" = "recursive"; then -+ # If there are subdirs, report their specific --help. -+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue -+ test -d "$ac_dir" || continue -+ ac_builddir=. -+ -+case "$ac_dir" in -+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -+*) -+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ # A ".." for each directory in $ac_dir_suffix. -+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` -+ case $ac_top_builddir_sub in -+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; -+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; -+ esac ;; -+esac -+ac_abs_top_builddir=$ac_pwd -+ac_abs_builddir=$ac_pwd$ac_dir_suffix -+# for backward compatibility: -+ac_top_builddir=$ac_top_build_prefix -+ -+case $srcdir in -+ .) # We are building in place. -+ ac_srcdir=. -+ ac_top_srcdir=$ac_top_builddir_sub -+ ac_abs_top_srcdir=$ac_pwd ;; -+ [\\/]* | ?:[\\/]* ) # Absolute name. -+ ac_srcdir=$srcdir$ac_dir_suffix; -+ ac_top_srcdir=$srcdir -+ ac_abs_top_srcdir=$srcdir ;; -+ *) # Relative name. -+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix -+ ac_top_srcdir=$ac_top_build_prefix$srcdir -+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -+esac -+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix -+ -+ cd "$ac_dir" || { ac_status=$?; continue; } -+ # Check for guested configure. -+ if test -f "$ac_srcdir/configure.gnu"; then -+ echo && -+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive -+ elif test -f "$ac_srcdir/configure"; then -+ echo && -+ $SHELL "$ac_srcdir/configure" --help=recursive -+ else -+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 -+ fi || ac_status=$? -+ cd "$ac_pwd" || { ac_status=$?; break; } -+ done -+fi -+ -+test -n "$ac_init_help" && exit $ac_status -+if $ac_init_version; then -+ cat <<\_ACEOF -+dfu-util configure 0.1 -+generated by GNU Autoconf 2.60 -+ -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+This configure script is free software; the Free Software Foundation -+gives unlimited permission to copy, distribute and modify it. -+_ACEOF -+ exit -+fi -+cat >config.log <<_ACEOF -+This file contains any messages produced by compilers while -+running configure, to aid debugging if configure makes a mistake. -+ -+It was created by dfu-util $as_me 0.1, which was -+generated by GNU Autoconf 2.60. Invocation command line was -+ -+ $ $0 $@ -+ -+_ACEOF -+exec 5>>config.log -+{ -+cat <<_ASUNAME -+## --------- ## -+## Platform. ## -+## --------- ## -+ -+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -+uname -m = `(uname -m) 2>/dev/null || echo unknown` -+uname -r = `(uname -r) 2>/dev/null || echo unknown` -+uname -s = `(uname -s) 2>/dev/null || echo unknown` -+uname -v = `(uname -v) 2>/dev/null || echo unknown` -+ -+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` -+ -+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` -+ -+_ASUNAME -+ -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ echo "PATH: $as_dir" -+done -+IFS=$as_save_IFS -+ -+} >&5 -+ -+cat >&5 <<_ACEOF -+ -+ -+## ----------- ## -+## Core tests. ## -+## ----------- ## -+ -+_ACEOF -+ -+ -+# Keep a trace of the command line. -+# Strip out --no-create and --no-recursion so they do not pile up. -+# Strip out --silent because we don't want to record it for future runs. -+# Also quote any args containing shell meta-characters. -+# Make two passes to allow for proper duplicate-argument suppression. -+ac_configure_args= -+ac_configure_args0= -+ac_configure_args1= -+ac_must_keep_next=false -+for ac_pass in 1 2 -+do -+ for ac_arg -+ do -+ case $ac_arg in -+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil) -+ continue ;; -+ *\'*) -+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; -+ esac -+ case $ac_pass in -+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; -+ 2) -+ ac_configure_args1="$ac_configure_args1 '$ac_arg'" -+ if test $ac_must_keep_next = true; then -+ ac_must_keep_next=false # Got value, back to normal. -+ else -+ case $ac_arg in -+ *=* | --config-cache | -C | -disable-* | --disable-* \ -+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ -+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ -+ | -with-* | --with-* | -without-* | --without-* | --x) -+ case "$ac_configure_args0 " in -+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; -+ esac -+ ;; -+ -* ) ac_must_keep_next=true ;; -+ esac -+ fi -+ ac_configure_args="$ac_configure_args '$ac_arg'" -+ ;; -+ esac -+ done -+done -+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } -+ -+# When interrupted or exit'd, cleanup temporary files, and complete -+# config.log. We remove comments because anyway the quotes in there -+# would cause problems or look ugly. -+# WARNING: Use '\'' to represent an apostrophe within the trap. -+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -+trap 'exit_status=$? -+ # Save into config.log some information that might help in debugging. -+ { -+ echo -+ -+ cat <<\_ASBOX -+## ---------------- ## -+## Cache variables. ## -+## ---------------- ## -+_ASBOX -+ echo -+ # The following way of writing the cache mishandles newlines in values, -+( -+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do -+ eval ac_val=\$$ac_var -+ case $ac_val in #( -+ *${as_nl}*) -+ case $ac_var in #( -+ *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; -+ esac -+ case $ac_var in #( -+ _ | IFS | as_nl) ;; #( -+ *) $as_unset $ac_var ;; -+ esac ;; -+ esac -+ done -+ (set) 2>&1 | -+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( -+ *${as_nl}ac_space=\ *) -+ sed -n \ -+ "s/'\''/'\''\\\\'\'''\''/g; -+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" -+ ;; #( -+ *) -+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" -+ ;; -+ esac | -+ sort -+) -+ echo -+ -+ cat <<\_ASBOX -+## ----------------- ## -+## Output variables. ## -+## ----------------- ## -+_ASBOX -+ echo -+ for ac_var in $ac_subst_vars -+ do -+ eval ac_val=\$$ac_var -+ case $ac_val in -+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; -+ esac -+ echo "$ac_var='\''$ac_val'\''" -+ done | sort -+ echo -+ -+ if test -n "$ac_subst_files"; then -+ cat <<\_ASBOX -+## ------------------- ## -+## File substitutions. ## -+## ------------------- ## -+_ASBOX -+ echo -+ for ac_var in $ac_subst_files -+ do -+ eval ac_val=\$$ac_var -+ case $ac_val in -+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; -+ esac -+ echo "$ac_var='\''$ac_val'\''" -+ done | sort -+ echo -+ fi -+ -+ if test -s confdefs.h; then -+ cat <<\_ASBOX -+## ----------- ## -+## confdefs.h. ## -+## ----------- ## -+_ASBOX -+ echo -+ cat confdefs.h -+ echo -+ fi -+ test "$ac_signal" != 0 && -+ echo "$as_me: caught signal $ac_signal" -+ echo "$as_me: exit $exit_status" -+ } >&5 -+ rm -f core *.core core.conftest.* && -+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files && -+ exit $exit_status -+' 0 -+for ac_signal in 1 2 13 15; do -+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -+done -+ac_signal=0 -+ -+# confdefs.h avoids OS command line length limits that DEFS can exceed. -+rm -f -r conftest* confdefs.h -+ -+# Predefined preprocessor variables. -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_NAME "$PACKAGE_NAME" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_VERSION "$PACKAGE_VERSION" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_STRING "$PACKAGE_STRING" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -+_ACEOF -+ -+ -+# Let the site file select an alternate cache file if it wants to. -+# Prefer explicitly selected file to automatically selected ones. -+if test -n "$CONFIG_SITE"; then -+ set x "$CONFIG_SITE" -+elif test "x$prefix" != xNONE; then -+ set x "$prefix/share/config.site" "$prefix/etc/config.site" -+else -+ set x "$ac_default_prefix/share/config.site" \ -+ "$ac_default_prefix/etc/config.site" -+fi -+shift -+for ac_site_file -+do -+ if test -r "$ac_site_file"; then -+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -+echo "$as_me: loading site script $ac_site_file" >&6;} -+ sed 's/^/| /' "$ac_site_file" >&5 -+ . "$ac_site_file" -+ fi -+done -+ -+if test -r "$cache_file"; then -+ # Some versions of bash will fail to source /dev/null (special -+ # files actually), so we avoid doing that. -+ if test -f "$cache_file"; then -+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -+echo "$as_me: loading cache $cache_file" >&6;} -+ case $cache_file in -+ [\\/]* | ?:[\\/]* ) . "$cache_file";; -+ *) . "./$cache_file";; -+ esac -+ fi -+else -+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -+echo "$as_me: creating cache $cache_file" >&6;} -+ >$cache_file -+fi -+ -+# Check that the precious variables saved in the cache have kept the same -+# value. -+ac_cache_corrupted=false -+for ac_var in $ac_precious_vars; do -+ eval ac_old_set=\$ac_cv_env_${ac_var}_set -+ eval ac_new_set=\$ac_env_${ac_var}_set -+ eval ac_old_val=\$ac_cv_env_${ac_var}_value -+ eval ac_new_val=\$ac_env_${ac_var}_value -+ case $ac_old_set,$ac_new_set in -+ set,) -+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} -+ ac_cache_corrupted=: ;; -+ ,set) -+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} -+ ac_cache_corrupted=: ;; -+ ,);; -+ *) -+ if test "x$ac_old_val" != "x$ac_new_val"; then -+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} -+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -+echo "$as_me: former value: $ac_old_val" >&2;} -+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -+echo "$as_me: current value: $ac_new_val" >&2;} -+ ac_cache_corrupted=: -+ fi;; -+ esac -+ # Pass precious variables to config.status. -+ if test "$ac_new_set" = set; then -+ case $ac_new_val in -+ *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; -+ *) ac_arg=$ac_var=$ac_new_val ;; -+ esac -+ case " $ac_configure_args " in -+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. -+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; -+ esac -+ fi -+done -+if $ac_cache_corrupted; then -+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -+echo "$as_me: error: changes in the environment can compromise the build" >&2;} -+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ -+ac_aux_dir= -+for ac_dir in m4 "$srcdir"/m4; do -+ if test -f "$ac_dir/install-sh"; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/install-sh -c" -+ break -+ elif test -f "$ac_dir/install.sh"; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/install.sh -c" -+ break -+ elif test -f "$ac_dir/shtool"; then -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/shtool install -c" -+ break -+ fi -+done -+if test -z "$ac_aux_dir"; then -+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in m4 \"$srcdir\"/m4" >&5 -+echo "$as_me: error: cannot find install-sh or install.sh in m4 \"$srcdir\"/m4" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+# These three variables are undocumented and unsupported, -+# and are intended to be withdrawn in a future Autoconf release. -+# They can cause serious problems if a builder's source tree is in a directory -+# whose full name contains unusual characters. -+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -+ -+ -+am__api_version="1.9" -+# Find a good install program. We prefer a C program (faster), -+# so one script is as good as another. But avoid the broken or -+# incompatible versions: -+# SysV /etc/install, /usr/sbin/install -+# SunOS /usr/etc/install -+# IRIX /sbin/install -+# AIX /bin/install -+# AmigaOS /C/install, which installs bootblocks on floppy discs -+# 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" -+# OS/2's system install, which has a completely different semantic -+# ./install, which can be erroneously created by make from ./install.sh. -+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } -+if test -z "$INSTALL"; then -+if test "${ac_cv_path_install+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ # Account for people who put trailing slashes in PATH elements. -+case $as_dir/ in -+ ./ | .// | /cC/* | \ -+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ -+ /usr/ucb/* ) ;; -+ *) -+ # OSF1 and SCO ODT 3.0 have their own names for install. -+ # Don't use installbsd from OSF since it installs stuff as root -+ # by default. -+ for ac_prog in ginstall scoinst install; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then -+ if test $ac_prog = install && -+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # AIX install. It has an incompatible calling convention. -+ : -+ elif test $ac_prog = install && -+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # program-specific install script used by HP pwplus--don't use. -+ : -+ else -+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" -+ break 3 -+ fi -+ fi -+ done -+ done -+ ;; -+esac -+done -+IFS=$as_save_IFS -+ -+ -+fi -+ if test "${ac_cv_path_install+set}" = set; then -+ INSTALL=$ac_cv_path_install -+ else -+ # As a last resort, use the slow shell script. Don't cache a -+ # value for INSTALL within a source directory, because that will -+ # break other packages using the cache if that directory is -+ # removed, or if the value is a relative name. -+ INSTALL=$ac_install_sh -+ fi -+fi -+{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -+echo "${ECHO_T}$INSTALL" >&6; } -+ -+# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -+# It thinks the first close brace ends the variable substitution. -+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -+ -+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -+ -+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -+ -+{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } -+# Just in case -+sleep 1 -+echo timestamp > conftest.file -+# Do `set' in a subshell so we don't clobber the current shell's -+# arguments. Must try -L first in case configure is actually a -+# symlink; some systems play weird games with the mod time of symlinks -+# (eg FreeBSD returns the mod time of the symlink's containing -+# directory). -+if ( -+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ if test "$*" = "X"; then -+ # -L didn't work. -+ set X `ls -t $srcdir/configure conftest.file` -+ fi -+ rm -f conftest.file -+ if test "$*" != "X $srcdir/configure conftest.file" \ -+ && test "$*" != "X conftest.file $srcdir/configure"; then -+ -+ # If neither matched, then we have a broken ls. This can happen -+ # if, for instance, CONFIG_SHELL is bash and it inherits a -+ # broken ls alias from the environment. This has actually -+ # happened. Such a system could not be considered "sane". -+ { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&5 -+echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+ -+ test "$2" = conftest.file -+ ) -+then -+ # Ok. -+ : -+else -+ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -+Check your system clock" >&5 -+echo "$as_me: error: newly created file is older than distributed files! -+Check your system clock" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+{ echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6; } -+test "$program_prefix" != NONE && -+ program_transform_name="s&^&$program_prefix&;$program_transform_name" -+# Use a double $ so make ignores it. -+test "$program_suffix" != NONE && -+ program_transform_name="s&\$&$program_suffix&;$program_transform_name" -+# Double any \ or $. echo might interpret backslashes. -+# By default was `s,x,x', remove it if useless. -+cat <<\_ACEOF >conftest.sed -+s/[\\$]/&&/g;s/;s,x,x,$// -+_ACEOF -+program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -+rm -f conftest.sed -+ -+# expand $ac_aux_dir to an absolute path -+am_aux_dir=`cd $ac_aux_dir && pwd` -+ -+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+# Use eval to expand $SHELL -+if eval "$MISSING --run true"; then -+ am_missing_run="$MISSING --run " -+else -+ am_missing_run= -+ { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -+fi -+ -+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -+ # We used to keeping the `.' as first argument, in order to -+ # allow $(mkdir_p) to be used without argument. As in -+ # $(mkdir_p) $(somedir) -+ # where $(somedir) is conditionally defined. However this is wrong -+ # for two reasons: -+ # 1. if the package is installed by a user who cannot write `.' -+ # make install will fail, -+ # 2. the above comment should most certainly read -+ # $(mkdir_p) $(DESTDIR)$(somedir) -+ # so it does not work when $(somedir) is undefined and -+ # $(DESTDIR) is not. -+ # To support the latter case, we have to write -+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), -+ # so the `.' trick is pointless. -+ mkdir_p='mkdir -p --' -+else -+ # On NextStep and OpenStep, the `mkdir' command does not -+ # recognize any option. It will interpret all options as -+ # directories to create, and then abort because `.' already -+ # exists. -+ for d in ./-p ./--version; -+ do -+ test -d $d && rmdir $d -+ done -+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -+ if test -f "$ac_aux_dir/mkinstalldirs"; then -+ mkdir_p='$(mkinstalldirs)' -+ else -+ mkdir_p='$(install_sh) -d' -+ fi -+fi -+ -+for ac_prog in gawk mawk nawk awk -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_AWK+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$AWK"; then -+ ac_cv_prog_AWK="$AWK" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_AWK="$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+AWK=$ac_cv_prog_AWK -+if test -n "$AWK"; then -+ { echo "$as_me:$LINENO: result: $AWK" >&5 -+echo "${ECHO_T}$AWK" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+ test -n "$AWK" && break -+done -+ -+{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -+set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.make <<\_ACEOF -+SHELL = /bin/sh -+all: -+ @echo '@@@%%%=$(MAKE)=@@@%%%' -+_ACEOF -+# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -+case `${MAKE-make} -f conftest.make 2>/dev/null` in -+ *@@@%%%=?*=@@@%%%*) -+ eval ac_cv_prog_make_${ac_make}_set=yes;; -+ *) -+ eval ac_cv_prog_make_${ac_make}_set=no;; -+esac -+rm -f conftest.make -+fi -+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then -+ { echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6; } -+ SET_MAKE= -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+ SET_MAKE="MAKE=${MAKE-make}" -+fi -+ -+rm -rf .tst 2>/dev/null -+mkdir .tst 2>/dev/null -+if test -d .tst; then -+ am__leading_dot=. -+else -+ am__leading_dot=_ -+fi -+rmdir .tst 2>/dev/null -+ -+# test to see if srcdir already configured -+if test "`cd $srcdir && pwd`" != "`pwd`" && -+ test -f $srcdir/config.status; then -+ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+# test whether we have cygpath -+if test -z "$CYGPATH_W"; then -+ if (cygpath --version) >/dev/null 2>/dev/null; then -+ CYGPATH_W='cygpath -w' -+ else -+ CYGPATH_W=echo -+ fi -+fi -+ -+ -+# Define the identity of the package. -+ PACKAGE=dfu-util -+ VERSION=0.1 -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define PACKAGE "$PACKAGE" -+_ACEOF -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define VERSION "$VERSION" -+_ACEOF -+ -+# Some tools Automake needs. -+ -+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} -+ -+ -+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} -+ -+ -+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} -+ -+ -+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} -+ -+ -+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -+ -+install_sh=${install_sh-"$am_aux_dir/install-sh"} -+ -+# Installed binaries are usually stripped using `strip' when the user -+# run `make install-strip'. However `strip' might not be the right -+# tool to use in cross-compilation environments, therefore Automake -+# will honor the `STRIP' environment variable to overrule this program. -+if test "$cross_compiling" != no; then -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -+set dummy ${ac_tool_prefix}strip; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_STRIP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$STRIP"; then -+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_STRIP="${ac_tool_prefix}strip" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+STRIP=$ac_cv_prog_STRIP -+if test -n "$STRIP"; then -+ { echo "$as_me:$LINENO: result: $STRIP" >&5 -+echo "${ECHO_T}$STRIP" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_STRIP"; then -+ ac_ct_STRIP=$STRIP -+ # Extract the first word of "strip", so it can be a program name with args. -+set dummy strip; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_STRIP"; then -+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_STRIP="strip" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -+if test -n "$ac_ct_STRIP"; then -+ { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -+echo "${ECHO_T}$ac_ct_STRIP" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ if test "x$ac_ct_STRIP" = x; then -+ STRIP=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&5 -+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&2;} -+ac_tool_warned=yes ;; -+esac -+ STRIP=$ac_ct_STRIP -+ fi -+else -+ STRIP="$ac_cv_prog_STRIP" -+fi -+ -+fi -+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -+ -+# We need awk for the "check" target. The system "awk" is bad on -+# some platforms. -+# Always define AMTAR for backward compatibility. -+ -+AMTAR=${AMTAR-"${am_missing_run}tar"} -+ -+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -+ -+ -+ -+ -+ -+#AC_CONFIG_SRCDIR([src/atmel.c]) -+ac_config_headers="$ac_config_headers config.h" -+ -+ -+{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } -+ # Check whether --enable-maintainer-mode was given. -+if test "${enable_maintainer_mode+set}" = set; then -+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -+else -+ USE_MAINTAINER_MODE=no -+fi -+ -+ { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } -+ -+ -+if test $USE_MAINTAINER_MODE = yes; then -+ MAINTAINER_MODE_TRUE= -+ MAINTAINER_MODE_FALSE='#' -+else -+ MAINTAINER_MODE_TRUE='#' -+ MAINTAINER_MODE_FALSE= -+fi -+ -+ MAINT=$MAINTAINER_MODE_TRUE -+ -+ -+ -+# Checks for programs. -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -+set dummy ${ac_tool_prefix}gcc; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_CC="${ac_tool_prefix}gcc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_CC"; then -+ ac_ct_CC=$CC -+ # Extract the first word of "gcc", so it can be a program name with args. -+set dummy gcc; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_CC"; then -+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_CC="gcc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+echo "${ECHO_T}$ac_ct_CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ if test "x$ac_ct_CC" = x; then -+ CC="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&5 -+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&2;} -+ac_tool_warned=yes ;; -+esac -+ CC=$ac_ct_CC -+ fi -+else -+ CC="$ac_cv_prog_CC" -+fi -+ -+if test -z "$CC"; then -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -+set dummy ${ac_tool_prefix}cc; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_CC="${ac_tool_prefix}cc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+ fi -+fi -+if test -z "$CC"; then -+ # Extract the first word of "cc", so it can be a program name with args. -+set dummy cc; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+ ac_prog_rejected=no -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then -+ ac_prog_rejected=yes -+ continue -+ fi -+ ac_cv_prog_CC="cc" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+if test $ac_prog_rejected = yes; then -+ # We found a bogon in the path, so make sure we never use it. -+ set dummy $ac_cv_prog_CC -+ shift -+ if test $# != 0; then -+ # We chose a different compiler from the bogus one. -+ # However, it has the same basename, so the bogon will be chosen -+ # first if we set CC to just the basename; use the full file name. -+ shift -+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -+ fi -+fi -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+fi -+if test -z "$CC"; then -+ if test -n "$ac_tool_prefix"; then -+ for ac_prog in cl.exe -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { echo "$as_me:$LINENO: result: $CC" >&5 -+echo "${ECHO_T}$CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+ test -n "$CC" && break -+ done -+fi -+if test -z "$CC"; then -+ ac_ct_CC=$CC -+ for ac_prog in cl.exe -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$ac_ct_CC"; then -+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_prog_ac_ct_CC="$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+echo "${ECHO_T}$ac_ct_CC" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+ test -n "$ac_ct_CC" && break -+done -+ -+ if test "x$ac_ct_CC" = x; then -+ CC="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&5 -+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&2;} -+ac_tool_warned=yes ;; -+esac -+ CC=$ac_ct_CC -+ fi -+fi -+ -+fi -+ -+ -+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&5 -+echo "$as_me: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+ -+# Provide some information about the compiler. -+echo "$as_me:$LINENO: checking for C compiler version" >&5 -+ac_compiler=`set X $ac_compile; echo $2` -+{ (ac_try="$ac_compiler --version >&5" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compiler --version >&5") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (ac_try="$ac_compiler -v >&5" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compiler -v >&5") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (ac_try="$ac_compiler -V >&5" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compiler -V >&5") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+ -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+ac_clean_files_save=$ac_clean_files -+ac_clean_files="$ac_clean_files a.out a.exe b.out" -+# Try to create an executable without -o first, disregard a.out. -+# It will help us diagnose broken compilers, and finding out an intuition -+# of exeext. -+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -+# -+# List of possible output files, starting from the most likely. -+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -+# only as a last resort. b.out is created by i960 compilers. -+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -+# -+# The IRIX 6 linker writes into existing files which may not be -+# executable, retaining their permissions. Remove them first so a -+# subsequent execution test works. -+ac_rmfiles= -+for ac_file in $ac_files -+do -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; -+ * ) ac_rmfiles="$ac_rmfiles $ac_file";; -+ esac -+done -+rm -f $ac_rmfiles -+ -+if { (ac_try="$ac_link_default" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link_default") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -+# in a Makefile. We should not override ac_cv_exeext if it was cached, -+# so that the user can short-circuit this test for compilers unknown to -+# Autoconf. -+for ac_file in $ac_files -+do -+ test -f "$ac_file" || continue -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) -+ ;; -+ [ab].out ) -+ # We found the default executable, but exeext='' is most -+ # certainly right. -+ break;; -+ *.* ) -+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; -+ then :; else -+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -+ fi -+ # We set ac_cv_exeext here because the later test for it is not -+ # safe: cross compilers may not add the suffix if given an `-o' -+ # argument, so we may need to know it at that point already. -+ # Even if this section looks crufty: it has the advantage of -+ # actually working. -+ break;; -+ * ) -+ break;; -+ esac -+done -+test "$ac_cv_exeext" = no && ac_cv_exeext= -+ -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -+See \`config.log' for more details." >&5 -+echo "$as_me: error: C compiler cannot create executables -+See \`config.log' for more details." >&2;} -+ { (exit 77); exit 77; }; } -+fi -+ -+ac_exeext=$ac_cv_exeext -+{ echo "$as_me:$LINENO: result: $ac_file" >&5 -+echo "${ECHO_T}$ac_file" >&6; } -+ -+# Check that the compiler produces executables we can run. If not, either -+# the compiler is broken, or we cross compile. -+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -+# If not cross compiling, check that we can run a simple program. -+if test "$cross_compiling" != yes; then -+ if { ac_try='./$ac_file' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ cross_compiling=no -+ else -+ if test "$cross_compiling" = maybe; then -+ cross_compiling=yes -+ else -+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -+If you meant to cross compile, use \`--host'. -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot run C compiled programs. -+If you meant to cross compile, use \`--host'. -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+ fi -+fi -+{ echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6; } -+ -+rm -f a.out a.exe conftest$ac_cv_exeext b.out -+ac_clean_files=$ac_clean_files_save -+# Check that the compiler produces executables we can run. If not, either -+# the compiler is broken, or we cross compile. -+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -+echo "${ECHO_T}$cross_compiling" >&6; } -+ -+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ # If both `conftest.exe' and `conftest' are `present' (well, observable) -+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -+# work properly (i.e., refer to `conftest.exe'), while it won't with -+# `rm'. -+for ac_file in conftest.exe conftest conftest.*; do -+ test -f "$ac_file" || continue -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; -+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -+ break;; -+ * ) break;; -+ esac -+done -+else -+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+rm -f conftest$ac_cv_exeext -+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -+echo "${ECHO_T}$ac_cv_exeext" >&6; } -+ -+rm -f conftest.$ac_ext -+EXEEXT=$ac_cv_exeext -+ac_exeext=$EXEEXT -+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -+if test "${ac_cv_objext+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.o conftest.obj -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ for ac_file in conftest.o conftest.obj conftest.*; do -+ test -f "$ac_file" || continue; -+ case $ac_file in -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; -+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` -+ break;; -+ esac -+done -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -+See \`config.log' for more details." >&5 -+echo "$as_me: error: cannot compute suffix of object files: cannot compile -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+rm -f conftest.$ac_cv_objext conftest.$ac_ext -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -+echo "${ECHO_T}$ac_cv_objext" >&6; } -+OBJEXT=$ac_cv_objext -+ac_objext=$OBJEXT -+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -+if test "${ac_cv_c_compiler_gnu+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+#ifndef __GNUC__ -+ choke me -+#endif -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_compiler_gnu=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_compiler_gnu=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_cv_c_compiler_gnu=$ac_compiler_gnu -+ -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -+GCC=`test $ac_compiler_gnu = yes && echo yes` -+ac_test_CFLAGS=${CFLAGS+set} -+ac_save_CFLAGS=$CFLAGS -+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -+if test "${ac_cv_prog_cc_g+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_save_c_werror_flag=$ac_c_werror_flag -+ ac_c_werror_flag=yes -+ ac_cv_prog_cc_g=no -+ CFLAGS="-g" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_prog_cc_g=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ CFLAGS="" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_c_werror_flag=$ac_save_c_werror_flag -+ CFLAGS="-g" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_prog_cc_g=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ ac_c_werror_flag=$ac_save_c_werror_flag -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } -+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 "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -+if test "${ac_cv_prog_cc_c89+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_cv_prog_cc_c89=no -+ac_save_CC=$CC -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <stdarg.h> -+#include <stdio.h> -+#include <sys/types.h> -+#include <sys/stat.h> -+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -+struct buf { int x; }; -+FILE * (*rcsopen) (struct buf *, struct stat *, int); -+static char *e (p, i) -+ char **p; -+ int i; -+{ -+ return p[i]; -+} -+static char *f (char * (*g) (char **, int), char **p, ...) -+{ -+ char *s; -+ va_list v; -+ va_start (v,p); -+ s = g (p, va_arg (v,int)); -+ va_end (v); -+ return s; -+} -+ -+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has -+ function prototypes and stuff, but not '\xHH' hex character constants. -+ These don't provoke an error unfortunately, instead are silently treated -+ as 'x'. The following induces an error, until -std is added to get -+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an -+ array size at least. It's necessary to write '\x00'==0 to get something -+ that's true only with -std. */ -+int osf4_cc_array ['\x00' == 0 ? 1 : -1]; -+ -+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters -+ inside strings and character constants. */ -+#define FOO(x) 'x' -+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; -+ -+int test (int i, double x); -+struct s1 {int (*f) (int a);}; -+struct s2 {int (*f) (double a);}; -+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -+int argc; -+char **argv; -+int -+main () -+{ -+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -+ ; -+ return 0; -+} -+_ACEOF -+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -+do -+ CC="$ac_save_CC $ac_arg" -+ rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_prog_cc_c89=$ac_arg -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext -+ test "x$ac_cv_prog_cc_c89" != "xno" && break -+done -+rm -f conftest.$ac_ext -+CC=$ac_save_CC -+ -+fi -+# AC_CACHE_VAL -+case "x$ac_cv_prog_cc_c89" in -+ x) -+ { echo "$as_me:$LINENO: result: none needed" >&5 -+echo "${ECHO_T}none needed" >&6; } ;; -+ xno) -+ { echo "$as_me:$LINENO: result: unsupported" >&5 -+echo "${ECHO_T}unsupported" >&6; } ;; -+ *) -+ CC="$CC $ac_cv_prog_cc_c89" -+ { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; -+esac -+ -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+DEPDIR="${am__leading_dot}deps" -+ -+ac_config_commands="$ac_config_commands depfiles" -+ -+ -+am_make=${MAKE-make} -+cat > confinc << 'END' -+am__doit: -+ @echo done -+.PHONY: am__doit -+END -+# If we don't find an include directive, just comment out the code. -+{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } -+am__include="#" -+am__quote= -+_am_result=none -+# First try GNU make style include. -+echo "include confinc" > confmf -+# We grep out `Entering directory' and `Leaving directory' -+# messages which can occur if `w' ends up in MAKEFLAGS. -+# In particular we don't look at `^make:' because GNU make might -+# be invoked under some other name (usually "gmake"), in which -+# case it prints its new name instead of `make'. -+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -+ am__include=include -+ am__quote= -+ _am_result=GNU -+fi -+# Now try BSD make style include. -+if test "$am__include" = "#"; then -+ echo '.include "confinc"' > confmf -+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ fi -+fi -+ -+ -+{ echo "$as_me:$LINENO: result: $_am_result" >&5 -+echo "${ECHO_T}$_am_result" >&6; } -+rm -f confinc confmf -+ -+# Check whether --enable-dependency-tracking was given. -+if test "${enable_dependency_tracking+set}" = set; then -+ enableval=$enable_dependency_tracking; -+fi -+ -+if test "x$enable_dependency_tracking" != xno; then -+ am_depcomp="$ac_aux_dir/depcomp" -+ AMDEPBACKSLASH='\' -+fi -+ -+ -+if test "x$enable_dependency_tracking" != xno; then -+ AMDEP_TRUE= -+ AMDEP_FALSE='#' -+else -+ AMDEP_TRUE='#' -+ AMDEP_FALSE= -+fi -+ -+ -+ -+ -+depcc="$CC" am_compiler_list= -+ -+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } -+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -+ # We make a subdir and do the tests there. Otherwise we can end up -+ # making bogus files that we don't know about and never remove. For -+ # instance it was reported that on HP-UX the gcc test will end up -+ # making a dummy file named `D' -- because `-MD' means `put the output -+ # in D'. -+ mkdir conftest.dir -+ # Copy depcomp to subdir because otherwise we won't find it if we're -+ # using a relative directory. -+ cp "$am_depcomp" conftest.dir -+ cd conftest.dir -+ # We will build objects and dependencies in a subdirectory because -+ # it helps to detect inapplicable dependency modes. For instance -+ # both Tru64's cc and ICC support -MD to output dependencies as a -+ # side effect of compilation, but ICC will put the dependencies in -+ # the current directory while Tru64 will put them in the object -+ # directory. -+ mkdir sub -+ -+ am_cv_CC_dependencies_compiler_type=none -+ if test "$am_compiler_list" = ""; then -+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -+ fi -+ for depmode in $am_compiler_list; do -+ # Setup a source with many dependencies, because some compilers -+ # like to wrap large dependency lists on column 80 (with \), and -+ # we should not choose a depcomp mode which is confused by this. -+ # -+ # We need to recreate these files for each test, as the compiler may -+ # overwrite some of them when testing with obscure command lines. -+ # This happens at least with the AIX C compiler. -+ : > sub/conftest.c -+ for i in 1 2 3 4 5 6; do -+ echo '#include "conftst'$i'.h"' >> sub/conftest.c -+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -+ # Solaris 8's {/usr,}/bin/sh. -+ touch sub/conftst$i.h -+ done -+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ -+ case $depmode in -+ nosideeffect) -+ # after this tag, mechanisms are not by side-effect, so they'll -+ # only be used when explicitly requested -+ if test "x$enable_dependency_tracking" = xyes; then -+ continue -+ else -+ break -+ fi -+ ;; -+ none) break ;; -+ esac -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. -+ if depmode=$depmode \ -+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ >/dev/null 2>conftest.err && -+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -+ # icc doesn't choke on unknown options, it will just issue warnings -+ # or remarks (even with -Werror). So we grep stderr for any message -+ # that says an option was ignored or not supported. -+ # When given -MP, icc 7.0 and 7.1 complain thusly: -+ # icc: Command line warning: ignoring option '-M'; no argument required -+ # The diagnosis changed in icc 8.0: -+ # icc: Command line remark: option '-MP' not supported -+ if (grep 'ignoring option' conftest.err || -+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -+ am_cv_CC_dependencies_compiler_type=$depmode -+ break -+ fi -+ fi -+ done -+ -+ cd .. -+ rm -rf conftest.dir -+else -+ am_cv_CC_dependencies_compiler_type=none -+fi -+ -+fi -+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } -+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -+ -+ -+ -+if -+ test "x$enable_dependency_tracking" != xno \ -+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -+ am__fastdepCC_TRUE= -+ am__fastdepCC_FALSE='#' -+else -+ am__fastdepCC_TRUE='#' -+ am__fastdepCC_FALSE= -+fi -+ -+ -+ -+# Checks for libraries. -+ -+ -+ -+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ case $PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+ ;; -+esac -+fi -+PKG_CONFIG=$ac_cv_path_PKG_CONFIG -+if test -n "$PKG_CONFIG"; then -+ { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -+echo "${ECHO_T}$PKG_CONFIG" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_path_PKG_CONFIG"; then -+ ac_pt_PKG_CONFIG=$PKG_CONFIG -+ # Extract the first word of "pkg-config", so it can be a program name with args. -+set dummy pkg-config; ac_word=$2 -+{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ case $ac_pt_PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS -+ -+ ;; -+esac -+fi -+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -+if test -n "$ac_pt_PKG_CONFIG"; then -+ { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } -+else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+fi -+ -+ if test "x$ac_pt_PKG_CONFIG" = x; then -+ PKG_CONFIG="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&5 -+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -+whose name does not start with the host triplet. If you think this -+configuration is useful to you, please write to autoconf@gnu.org." >&2;} -+ac_tool_warned=yes ;; -+esac -+ PKG_CONFIG=$ac_pt_PKG_CONFIG -+ fi -+else -+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+fi -+ -+fi -+if test -n "$PKG_CONFIG"; then -+ _pkg_min_version=0.9.0 -+ { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } -+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then -+ { echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6; } -+ else -+ { echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6; } -+ PKG_CONFIG="" -+ fi -+ -+fi -+ -+pkg_failed=no -+{ echo "$as_me:$LINENO: checking for USB" >&5 -+echo $ECHO_N "checking for USB... $ECHO_C" >&6; } -+ -+if test -n "$PKG_CONFIG"; then -+ if test -n "$USB_CFLAGS"; then -+ pkg_cv_USB_CFLAGS="$USB_CFLAGS" -+ else -+ if test -n "$PKG_CONFIG" && \ -+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libusb >= 0.1.4\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "libusb >= 0.1.4") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_USB_CFLAGS=`$PKG_CONFIG --cflags "libusb >= 0.1.4" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ fi -+else -+ pkg_failed=untried -+fi -+if test -n "$PKG_CONFIG"; then -+ if test -n "$USB_LIBS"; then -+ pkg_cv_USB_LIBS="$USB_LIBS" -+ else -+ if test -n "$PKG_CONFIG" && \ -+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libusb >= 0.1.4\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "libusb >= 0.1.4") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_USB_LIBS=`$PKG_CONFIG --libs "libusb >= 0.1.4" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ fi -+else -+ pkg_failed=untried -+fi -+ -+ -+ -+if test $pkg_failed = yes; then -+ -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes -+else -+ _pkg_short_errors_supported=no -+fi -+ if test $_pkg_short_errors_supported = yes; then -+ USB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libusb >= 0.1.4"` -+ else -+ USB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libusb >= 0.1.4"` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$USB_PKG_ERRORS" >&5 -+ -+ { { echo "$as_me:$LINENO: error: *** Required libusb >= 0.1.4 not installed ***" >&5 -+echo "$as_me: error: *** Required libusb >= 0.1.4 not installed ***" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { echo "$as_me:$LINENO: error: *** Required libusb >= 0.1.4 not installed ***" >&5 -+echo "$as_me: error: *** Required libusb >= 0.1.4 not installed ***" >&2;} -+ { (exit 1); exit 1; }; } -+else -+ USB_CFLAGS=$pkg_cv_USB_CFLAGS -+ USB_LIBS=$pkg_cv_USB_LIBS -+ { echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6; } -+ : -+fi -+ -+ -+{ echo "$as_me:$LINENO: checking for usb_path2devnum in -lusbpath" >&5 -+echo $ECHO_N "checking for usb_path2devnum in -lusbpath... $ECHO_C" >&6; } -+if test "${ac_cv_lib_usbpath_usb_path2devnum+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lusbpath -lusb $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char usb_path2devnum (); -+int -+main () -+{ -+return usb_path2devnum (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_lib_usbpath_usb_path2devnum=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_usbpath_usb_path2devnum=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_lib_usbpath_usb_path2devnum" >&5 -+echo "${ECHO_T}$ac_cv_lib_usbpath_usb_path2devnum" >&6; } -+if test $ac_cv_lib_usbpath_usb_path2devnum = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBUSBPATH 1 -+_ACEOF -+ -+ LIBS="-lusbpath $LIBS" -+ -+fi -+ -+ -+LIBS="$LIBS $USB_LIBS" -+CFLAGS="$CFLAGS $USB_CFLAGS" -+ -+# Checks for header files. -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } -+# On Suns, sometimes $CPP names a directory. -+if test -n "$CPP" && test -d "$CPP"; then -+ CPP= -+fi -+if test -z "$CPP"; then -+ if test "${ac_cv_prog_CPP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ # Double quotes because CPP needs to be expanded -+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" -+ do -+ ac_preproc_ok=false -+for ac_c_preproc_warn_flag in '' yes -+do -+ # Use a header file that comes with gcc, so configuring glibc -+ # with a fresh cross-compiler works. -+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since -+ # <limits.h> exists even on freestanding compilers. -+ # On the NeXT, cc -E runs the code through the compiler's parser, -+ # not just through cpp. "Syntax error" is here to catch this case. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#ifdef __STDC__ -+# include <limits.h> -+#else -+# include <assert.h> -+#endif -+ Syntax error -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ : -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ # Broken: fails on valid input. -+continue -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+ -+ # OK, works on sane cases. Now check whether nonexistent headers -+ # can be detected and how. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <ac_nonexistent.h> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ # Broken: success on invalid input. -+continue -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ # Passes both tests. -+ac_preproc_ok=: -+break -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+ -+done -+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -+rm -f conftest.err conftest.$ac_ext -+if $ac_preproc_ok; then -+ break -+fi -+ -+ done -+ ac_cv_prog_CPP=$CPP -+ -+fi -+ CPP=$ac_cv_prog_CPP -+else -+ ac_cv_prog_CPP=$CPP -+fi -+{ echo "$as_me:$LINENO: result: $CPP" >&5 -+echo "${ECHO_T}$CPP" >&6; } -+ac_preproc_ok=false -+for ac_c_preproc_warn_flag in '' yes -+do -+ # Use a header file that comes with gcc, so configuring glibc -+ # with a fresh cross-compiler works. -+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since -+ # <limits.h> exists even on freestanding compilers. -+ # On the NeXT, cc -E runs the code through the compiler's parser, -+ # not just through cpp. "Syntax error" is here to catch this case. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#ifdef __STDC__ -+# include <limits.h> -+#else -+# include <assert.h> -+#endif -+ Syntax error -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ : -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ # Broken: fails on valid input. -+continue -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+ -+ # OK, works on sane cases. Now check whether nonexistent headers -+ # can be detected and how. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <ac_nonexistent.h> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ # Broken: success on invalid input. -+continue -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ # Passes both tests. -+ac_preproc_ok=: -+break -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+ -+done -+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -+rm -f conftest.err conftest.$ac_ext -+if $ac_preproc_ok; then -+ : -+else -+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&5 -+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ -+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -+if test "${ac_cv_path_GREP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ # Extract the first word of "grep ggrep" to use in msg output -+if test -z "$GREP"; then -+set dummy grep ggrep; ac_prog_name=$2 -+if test "${ac_cv_path_GREP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_path_GREP_found=false -+# Loop through the user's path and test for each of PROGNAME-LIST -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_prog in grep ggrep; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" -+ { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue -+ # Check for GNU ac_path_GREP and select it if it is found. -+ # Check for GNU $ac_path_GREP -+case `"$ac_path_GREP" --version 2>&1` in -+*GNU*) -+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -+*) -+ ac_count=0 -+ echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" -+ while : -+ do -+ cat "conftest.in" "conftest.in" >"conftest.tmp" -+ mv "conftest.tmp" "conftest.in" -+ cp "conftest.in" "conftest.nl" -+ echo 'GREP' >> "conftest.nl" -+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break -+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break -+ ac_count=`expr $ac_count + 1` -+ if test $ac_count -gt ${ac_path_GREP_max-0}; then -+ # Best one so far, save it but keep looking for a better one -+ ac_cv_path_GREP="$ac_path_GREP" -+ ac_path_GREP_max=$ac_count -+ fi -+ # 10*(2^10) chars as input seems more than enough -+ test $ac_count -gt 10 && break -+ done -+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -+esac -+ -+ -+ $ac_path_GREP_found && break 3 -+ done -+done -+ -+done -+IFS=$as_save_IFS -+ -+ -+fi -+ -+GREP="$ac_cv_path_GREP" -+if test -z "$GREP"; then -+ { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+else -+ ac_cv_path_GREP=$GREP -+fi -+ -+ -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -+echo "${ECHO_T}$ac_cv_path_GREP" >&6; } -+ GREP="$ac_cv_path_GREP" -+ -+ -+{ echo "$as_me:$LINENO: checking for egrep" >&5 -+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -+if test "${ac_cv_path_EGREP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 -+ then ac_cv_path_EGREP="$GREP -E" -+ else -+ # Extract the first word of "egrep" to use in msg output -+if test -z "$EGREP"; then -+set dummy egrep; ac_prog_name=$2 -+if test "${ac_cv_path_EGREP+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ ac_path_EGREP_found=false -+# Loop through the user's path and test for each of PROGNAME-LIST -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_prog in egrep; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" -+ { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue -+ # Check for GNU ac_path_EGREP and select it if it is found. -+ # Check for GNU $ac_path_EGREP -+case `"$ac_path_EGREP" --version 2>&1` in -+*GNU*) -+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -+*) -+ ac_count=0 -+ echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" -+ while : -+ do -+ cat "conftest.in" "conftest.in" >"conftest.tmp" -+ mv "conftest.tmp" "conftest.in" -+ cp "conftest.in" "conftest.nl" -+ echo 'EGREP' >> "conftest.nl" -+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break -+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break -+ ac_count=`expr $ac_count + 1` -+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then -+ # Best one so far, save it but keep looking for a better one -+ ac_cv_path_EGREP="$ac_path_EGREP" -+ ac_path_EGREP_max=$ac_count -+ fi -+ # 10*(2^10) chars as input seems more than enough -+ test $ac_count -gt 10 && break -+ done -+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -+esac -+ -+ -+ $ac_path_EGREP_found && break 3 -+ done -+done -+ -+done -+IFS=$as_save_IFS -+ -+ -+fi -+ -+EGREP="$ac_cv_path_EGREP" -+if test -z "$EGREP"; then -+ { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+else -+ ac_cv_path_EGREP=$EGREP -+fi -+ -+ -+ fi -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } -+ EGREP="$ac_cv_path_EGREP" -+ -+ -+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -+if test "${ac_cv_header_stdc+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <stdlib.h> -+#include <stdarg.h> -+#include <string.h> -+#include <float.h> -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_header_stdc=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stdc=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+if test $ac_cv_header_stdc = yes; then -+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <string.h> -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : -+else -+ ac_cv_header_stdc=no -+fi -+rm -f conftest* -+ -+fi -+ -+if test $ac_cv_header_stdc = yes; then -+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <stdlib.h> -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "free" >/dev/null 2>&1; then -+ : -+else -+ ac_cv_header_stdc=no -+fi -+rm -f conftest* -+ -+fi -+ -+if test $ac_cv_header_stdc = yes; then -+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -+ if test "$cross_compiling" = yes; then -+ : -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <ctype.h> -+#include <stdlib.h> -+#if ((' ' & 0x0FF) == 0x020) -+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -+#else -+# define ISLOWER(c) \ -+ (('a' <= (c) && (c) <= 'i') \ -+ || ('j' <= (c) && (c) <= 'r') \ -+ || ('s' <= (c) && (c) <= 'z')) -+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -+#endif -+ -+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -+int -+main () -+{ -+ int i; -+ for (i = 0; i < 256; i++) -+ if (XOR (islower (i), ISLOWER (i)) -+ || toupper (i) != TOUPPER (i)) -+ return 2; -+ return 0; -+} -+_ACEOF -+rm -f conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : -+else -+ echo "$as_me: program exited with status $ac_status" >&5 -+echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+( exit $ac_status ) -+ac_cv_header_stdc=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+fi -+ -+ -+fi -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -+echo "${ECHO_T}$ac_cv_header_stdc" >&6; } -+if test $ac_cv_header_stdc = yes; then -+ -+cat >>confdefs.h <<\_ACEOF -+#define STDC_HEADERS 1 -+_ACEOF -+ -+fi -+ -+# On IRIX 5.3, sys/types and inttypes.h are conflicting. -+ -+ -+ -+ -+ -+ -+ -+ -+ -+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ -+ inttypes.h stdint.h unistd.h -+do -+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -+{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+ -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_Header=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_Header=no" -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+ac_res=`eval echo '${'$as_ac_Header'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+if test `eval echo '${'$as_ac_Header'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ -+ -+ -+ -+ -+for ac_header in stdlib.h string.h stdio.h usbpath.h -+do -+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ { echo "$as_me:$LINENO: checking for $ac_header" >&5 -+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+fi -+ac_res=`eval echo '${'$as_ac_Header'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+else -+ # Is the header compilable? -+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_header_compiler=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -+echo "${ECHO_T}$ac_header_compiler" >&6; } -+ -+# Is the header present? -+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ ac_header_preproc=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_preproc=no -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -+echo "${ECHO_T}$ac_header_preproc" >&6; } -+ -+# So? What about this header? -+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -+ yes:no: ) -+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} -+ -+ ;; -+esac -+{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ eval "$as_ac_Header=\$ac_header_preproc" -+fi -+ac_res=`eval echo '${'$as_ac_Header'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+ -+fi -+if test `eval echo '${'$as_ac_Header'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ -+# Checks for typedefs, structures, and compiler characteristics. -+{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } -+if test "${ac_cv_c_const+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+/* FIXME: Include the comments suggested by Paul. */ -+#ifndef __cplusplus -+ /* Ultrix mips cc rejects this. */ -+ typedef int charset[2]; -+ const charset x; -+ /* SunOS 4.1.1 cc rejects this. */ -+ char const *const *ccp; -+ char **p; -+ /* NEC SVR4.0.2 mips cc rejects this. */ -+ struct point {int x, y;}; -+ static struct point const zero = {0,0}; -+ /* AIX XL C 1.02.0.0 rejects this. -+ It does not let you subtract one const X* pointer from another in -+ an arm of an if-expression whose if-part is not a constant -+ expression */ -+ const char *g = "string"; -+ ccp = &g + (g ? g-g : 0); -+ /* HPUX 7.0 cc rejects these. */ -+ ++ccp; -+ p = (char**) ccp; -+ ccp = (char const *const *) p; -+ { /* SCO 3.2v4 cc rejects this. */ -+ char *t; -+ char const *s = 0 ? (char *) 0 : (char const *) 0; -+ -+ *t++ = 0; -+ if (s) return 0; -+ } -+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ -+ int x[] = {25, 17}; -+ const int *foo = &x[0]; -+ ++foo; -+ } -+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ -+ typedef const int *iptr; -+ iptr p = 0; -+ ++p; -+ } -+ { /* AIX XL C 1.02.0.0 rejects this saying -+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ -+ struct s { int j; const int *ap[3]; }; -+ struct s *b; b->j = 5; -+ } -+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ -+ const int foo = 10; -+ if (!foo) return 0; -+ } -+ return !x[0] && !zero.x; -+#endif -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_c_const=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_c_const=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -+echo "${ECHO_T}$ac_cv_c_const" >&6; } -+if test $ac_cv_c_const = no; then -+ -+cat >>confdefs.h <<\_ACEOF -+#define const -+_ACEOF -+ -+fi -+ -+{ echo "$as_me:$LINENO: checking for size_t" >&5 -+echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } -+if test "${ac_cv_type_size_t+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+typedef size_t ac__type_new_; -+int -+main () -+{ -+if ((ac__type_new_ *) 0) -+ return 0; -+if (sizeof (ac__type_new_)) -+ return 0; -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_type_size_t=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_type_size_t=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -+echo "${ECHO_T}$ac_cv_type_size_t" >&6; } -+if test $ac_cv_type_size_t = yes; then -+ : -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define size_t unsigned int -+_ACEOF -+ -+fi -+ -+ -+# Checks for library functions. -+ -+for ac_header in stdlib.h -+do -+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ { echo "$as_me:$LINENO: checking for $ac_header" >&5 -+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+fi -+ac_res=`eval echo '${'$as_ac_Header'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+else -+ # Is the header compilable? -+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (ac_try="$ac_compile" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_compile") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_header_compiler=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -+echo "${ECHO_T}$ac_header_compiler" >&6; } -+ -+# Is the header present? -+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } >/dev/null; then -+ if test -s conftest.err; then -+ ac_cpp_err=$ac_c_preproc_warn_flag -+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -+ else -+ ac_cpp_err= -+ fi -+else -+ ac_cpp_err=yes -+fi -+if test -z "$ac_cpp_err"; then -+ ac_header_preproc=yes -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_preproc=no -+fi -+ -+rm -f conftest.err conftest.$ac_ext -+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -+echo "${ECHO_T}$ac_header_preproc" >&6; } -+ -+# So? What about this header? -+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -+ yes:no: ) -+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} -+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} -+ -+ ;; -+esac -+{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ eval "$as_ac_Header=\$ac_header_preproc" -+fi -+ac_res=`eval echo '${'$as_ac_Header'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+ -+fi -+if test `eval echo '${'$as_ac_Header'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -+echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } -+if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test "$cross_compiling" = yes; then -+ ac_cv_func_malloc_0_nonnull=no -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#if STDC_HEADERS || HAVE_STDLIB_H -+# include <stdlib.h> -+#else -+char *malloc (); -+#endif -+ -+int -+main () -+{ -+return ! malloc (0); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_func_malloc_0_nonnull=yes -+else -+ echo "$as_me: program exited with status $ac_status" >&5 -+echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+( exit $ac_status ) -+ac_cv_func_malloc_0_nonnull=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+fi -+ -+ -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -+echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } -+if test $ac_cv_func_malloc_0_nonnull = yes; then -+ -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_MALLOC 1 -+_ACEOF -+ -+else -+ cat >>confdefs.h <<\_ACEOF -+#define HAVE_MALLOC 0 -+_ACEOF -+ -+ case " $LIBOBJS " in -+ *" malloc.$ac_objext "* ) ;; -+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext" -+ ;; -+esac -+ -+ -+cat >>confdefs.h <<\_ACEOF -+#define malloc rpl_malloc -+_ACEOF -+ -+fi -+ -+ -+ -+{ echo "$as_me:$LINENO: checking for working memcmp" >&5 -+echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } -+if test "${ac_cv_func_memcmp_working+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test "$cross_compiling" = yes; then -+ ac_cv_func_memcmp_working=no -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+ -+ /* Some versions of memcmp are not 8-bit clean. */ -+ char c0 = '\100', c1 = '\200', c2 = '\201'; -+ if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) -+ return 1; -+ -+ /* The Next x86 OpenStep bug shows up only when comparing 16 bytes -+ or more and with at least one buffer not starting on a 4-byte boundary. -+ William Lewis provided this test program. */ -+ { -+ char foo[21]; -+ char bar[21]; -+ int i; -+ for (i = 0; i < 4; i++) -+ { -+ char *a = foo + i; -+ char *b = bar + i; -+ strcpy (a, "--------01111111"); -+ strcpy (b, "--------10000000"); -+ if (memcmp (a, b, 16) >= 0) -+ return 1; -+ } -+ return 0; -+ } -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ ac_cv_func_memcmp_working=yes -+else -+ echo "$as_me: program exited with status $ac_status" >&5 -+echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+( exit $ac_status ) -+ac_cv_func_memcmp_working=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+fi -+ -+ -+fi -+{ echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 -+echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } -+test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in -+ *" memcmp.$ac_objext "* ) ;; -+ *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" -+ ;; -+esac -+ -+ -+ -+for ac_func in memset -+do -+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -+{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. -+ For example, HP-UX 11i <limits.h> declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since -+ <limits.h> exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include <limits.h> -+#else -+# include <assert.h> -+#endif -+ -+#undef $ac_func -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char $ac_func (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined __stub_$ac_func || defined __stub___$ac_func -+choke me -+#endif -+ -+int -+main () -+{ -+return $ac_func (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (ac_try="$ac_link" -+case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_link") 2>conftest.er1 -+ ac_status=$? -+ grep -v '^ *+' conftest.er1 >conftest.err -+ rm -f conftest.er1 -+ cat conftest.err >&5 -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } && -+ { ac_try='test -s conftest$ac_exeext' -+ { (case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ eval "$as_ac_var=yes" -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_var=no" -+fi -+ -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+ac_res=`eval echo '${'$as_ac_var'}'` -+ { echo "$as_me:$LINENO: result: $ac_res" >&5 -+echo "${ECHO_T}$ac_res" >&6; } -+if test `eval echo '${'$as_ac_var'}'` = yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+done -+ -+ -+ac_config_files="$ac_config_files Makefile src/Makefile" -+ -+cat >confcache <<\_ACEOF -+# This file is a shell script that caches the results of configure -+# tests run on this system so they can be shared between configure -+# scripts and configure runs, see configure's option --config-cache. -+# It is not useful on other systems. If it contains results you don't -+# want to keep, you may remove or edit it. -+# -+# config.status only pays attention to the cache file if you give it -+# the --recheck option to rerun configure. -+# -+# `ac_cv_env_foo' variables (set or unset) will be overridden when -+# loading this file, other *unset* `ac_cv_foo' will be assigned the -+# following values. -+ -+_ACEOF -+ -+# The following way of writing the cache mishandles newlines in values, -+# but we know of no workaround that is simple, portable, and efficient. -+# So, we kill variables containing newlines. -+# 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. -+( -+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do -+ eval ac_val=\$$ac_var -+ case $ac_val in #( -+ *${as_nl}*) -+ case $ac_var in #( -+ *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; -+ esac -+ case $ac_var in #( -+ _ | IFS | as_nl) ;; #( -+ *) $as_unset $ac_var ;; -+ esac ;; -+ esac -+ done -+ -+ (set) 2>&1 | -+ case $as_nl`(ac_space=' '; set) 2>&1` in #( -+ *${as_nl}ac_space=\ *) -+ # `set' does not quote correctly, so add quotes (double-quote -+ # substitution turns \\\\ into \\, and sed turns \\ into \). -+ sed -n \ -+ "s/'/'\\\\''/g; -+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" -+ ;; #( -+ *) -+ # `set' quotes correctly as required by POSIX, so do not add quotes. -+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" -+ ;; -+ esac | -+ sort -+) | -+ sed ' -+ /^ac_cv_env_/b end -+ t clear -+ :clear -+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ -+ t end -+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ -+ :end' >>confcache -+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else -+ if test -w "$cache_file"; then -+ test "x$cache_file" != "x/dev/null" && -+ { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -+echo "$as_me: updating cache $cache_file" >&6;} -+ cat confcache >$cache_file -+ else -+ { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -+echo "$as_me: not updating unwritable cache $cache_file" >&6;} -+ fi -+fi -+rm -f confcache -+ -+test "x$prefix" = xNONE && prefix=$ac_default_prefix -+# Let make expand exec_prefix. -+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -+ -+DEFS=-DHAVE_CONFIG_H -+ -+ac_libobjs= -+ac_ltlibobjs= -+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue -+ # 1. Remove the extension, and $U if already installed. -+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' -+ ac_i=`echo "$ac_i" | sed "$ac_script"` -+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR -+ # will be set to the directory where LIBOBJS objects are built. -+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" -+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -+done -+LIBOBJS=$ac_libobjs -+ -+LTLIBOBJS=$ac_ltlibobjs -+ -+ -+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then -+ { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then -+ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+echo "$as_me: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -+ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+ -+: ${CONFIG_STATUS=./config.status} -+ac_clean_files_save=$ac_clean_files -+ac_clean_files="$ac_clean_files $CONFIG_STATUS" -+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -+echo "$as_me: creating $CONFIG_STATUS" >&6;} -+cat >$CONFIG_STATUS <<_ACEOF -+#! $SHELL -+# Generated by $as_me. -+# Run this file to recreate the current configuration. -+# Compiler output produced by configure, useful for debugging -+# configure, is in config.log if it exists. -+ -+debug=false -+ac_cs_recheck=false -+ac_cs_silent=false -+SHELL=\${CONFIG_SHELL-$SHELL} -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## -+ -+# Be Bourne compatible -+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -+ emulate sh -+ NULLCMD=: -+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -+ # is contrary to our usage. Disable this feature. -+ alias -g '${1+"$@"}'='"$@"' -+ setopt NO_GLOB_SUBST -+else -+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -+fi -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+ -+# PATH needs CR -+# Avoid depending upon Character Ranges. -+as_cr_letters='abcdefghijklmnopqrstuvwxyz' -+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -+as_cr_Letters=$as_cr_letters$as_cr_LETTERS -+as_cr_digits='0123456789' -+as_cr_alnum=$as_cr_Letters$as_cr_digits -+ -+# The user is always right. -+if test "${PATH_SEPARATOR+set}" != set; then -+ echo "#! /bin/sh" >conf$$.sh -+ echo "exit 0" >>conf$$.sh -+ chmod +x conf$$.sh -+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -+ PATH_SEPARATOR=';' -+ else -+ PATH_SEPARATOR=: -+ fi -+ rm -f conf$$.sh -+fi -+ -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset -+else -+ as_unset=false -+fi -+ -+ -+# IFS -+# We need space, tab and new line, in precisely that order. Quoting is -+# there to prevent editors from complaining about space-tab. -+# (If _AS_PATH_WALK were called with IFS unset, it would disable word -+# splitting by setting IFS to empty value.) -+as_nl=' -+' -+IFS=" "" $as_nl" -+ -+# Find who we are. Look in the path if we contain no directory separator. -+case $0 in -+ *[\\/]* ) as_myself=$0 ;; -+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -+done -+IFS=$as_save_IFS -+ -+ ;; -+esac -+# We did not find ourselves, most probably we were run as `sh COMMAND' -+# in which case we are not to be found in the path. -+if test "x$as_myself" = x; then -+ as_myself=$0 -+fi -+if test ! -f "$as_myself"; then -+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 -+ { (exit 1); exit 1; } -+fi -+ -+# Work around bugs in pre-3.0 UWIN ksh. -+for as_var in ENV MAIL MAILPATH -+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+done -+PS1='$ ' -+PS2='> ' -+PS4='+ ' -+ -+# NLS nuisances. -+for as_var in \ -+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -+ LC_TELEPHONE LC_TIME -+do -+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -+ eval $as_var=C; export $as_var -+ else -+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+ fi -+done -+ -+# Required to use basename. -+if expr a : '\(a\)' >/dev/null 2>&1 && -+ test "X`expr 00001 : '.*\(...\)'`" = X001; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then -+ as_basename=basename -+else -+ as_basename=false -+fi -+ -+ -+# Name of the executable. -+as_me=`$as_basename -- "$0" || -+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| . 2>/dev/null || -+echo X/"$0" | -+ sed '/^.*\/\([^/][^/]*\)\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ -+# CDPATH. -+$as_unset CDPATH -+ -+ -+ -+ as_lineno_1=$LINENO -+ as_lineno_2=$LINENO -+ test "x$as_lineno_1" != "x$as_lineno_2" && -+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { -+ -+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -+ # uniformly replaced by the line number. The first 'sed' inserts a -+ # line-number line after each line using $LINENO; the second 'sed' -+ # does the real work. The second script uses 'N' to pair each -+ # line-number line with the line containing $LINENO, and appends -+ # trailing '-' during substitution so that $LINENO is not a special -+ # case at line end. -+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -+ # scripts with optimization help from Paolo Bonzini. Blame Lee -+ # E. McMahon (1931-1989) for sed's syntax. :-) -+ sed -n ' -+ p -+ /[$]LINENO/= -+ ' <$as_myself | -+ sed ' -+ s/[$]LINENO.*/&-/ -+ t lineno -+ b -+ :lineno -+ N -+ :loop -+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ -+ t loop -+ s/-\n.*// -+ ' >$as_me.lineno && -+ chmod +x "$as_me.lineno" || -+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 -+ { (exit 1); exit 1; }; } -+ -+ # Don't try to exec as it changes $[0], causing all sort of problems -+ # (the dirname of $[0] is not the place where we might find the -+ # original and so on. Autoconf is especially sensitive to this). -+ . "./$as_me.lineno" -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -+ as_dirname=dirname -+else -+ as_dirname=false -+fi -+ -+ECHO_C= ECHO_N= ECHO_T= -+case `echo -n x` in -+-n*) -+ case `echo 'x\c'` in -+ *c*) ECHO_T=' ';; # ECHO_T is single tab character. -+ *) ECHO_C='\c';; -+ esac;; -+*) -+ ECHO_N='-n';; -+esac -+ -+if expr a : '\(a\)' >/dev/null 2>&1 && -+ test "X`expr 00001 : '.*\(...\)'`" = X001; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+rm -f conf$$ conf$$.exe conf$$.file -+if test -d conf$$.dir; then -+ rm -f conf$$.dir/conf$$.file -+else -+ rm -f conf$$.dir -+ mkdir conf$$.dir -+fi -+echo >conf$$.file -+if ln -s conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s='ln -s' -+ # ... but there are two gotchas: -+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. -+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. -+ # In both cases, we have to default to `cp -p'. -+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || -+ as_ln_s='cp -p' -+elif ln conf$$.file conf$$ 2>/dev/null; then -+ as_ln_s=ln -+else -+ as_ln_s='cp -p' -+fi -+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -+rmdir conf$$.dir 2>/dev/null -+ -+if mkdir -p . 2>/dev/null; then -+ as_mkdir_p=: -+else -+ test -d ./-p && rmdir ./-p -+ as_mkdir_p=false -+fi -+ -+# Find out whether ``test -x'' works. Don't use a zero-byte file, as -+# systems may use methods other than mode bits to determine executability. -+cat >conf$$.file <<_ASEOF -+#! /bin/sh -+exit 0 -+_ASEOF -+chmod +x conf$$.file -+if test -x conf$$.file >/dev/null 2>&1; then -+ as_executable_p="test -x" -+else -+ as_executable_p=: -+fi -+rm -f conf$$.file -+ -+# Sed expression to map a string onto a valid CPP name. -+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -+ -+# Sed expression to map a string onto a valid variable name. -+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -+ -+ -+exec 6>&1 -+ -+# Save the log message, to keep $[0] and so on meaningful, and to -+# report actual input values of CONFIG_FILES etc. instead of their -+# values after options handling. -+ac_log=" -+This file was extended by dfu-util $as_me 0.1, which was -+generated by GNU Autoconf 2.60. Invocation command line was -+ -+ CONFIG_FILES = $CONFIG_FILES -+ CONFIG_HEADERS = $CONFIG_HEADERS -+ CONFIG_LINKS = $CONFIG_LINKS -+ CONFIG_COMMANDS = $CONFIG_COMMANDS -+ $ $0 $@ -+ -+on `(hostname || uname -n) 2>/dev/null | sed 1q` -+" -+ -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<_ACEOF -+# Files that config.status was made for. -+config_files="$ac_config_files" -+config_headers="$ac_config_headers" -+config_commands="$ac_config_commands" -+ -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+ac_cs_usage="\ -+\`$as_me' instantiates files from templates according to the -+current configuration. -+ -+Usage: $0 [OPTIONS] [FILE]... -+ -+ -h, --help print this help, then exit -+ -V, --version print version number, then exit -+ -q, --quiet do not print progress messages -+ -d, --debug don't remove temporary files -+ --recheck update $as_me by reconfiguring in the same conditions -+ --file=FILE[:TEMPLATE] -+ instantiate the configuration file FILE -+ --header=FILE[:TEMPLATE] -+ instantiate the configuration header FILE -+ -+Configuration files: -+$config_files -+ -+Configuration headers: -+$config_headers -+ -+Configuration commands: -+$config_commands -+ -+Report bugs to <bug-autoconf@gnu.org>." -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+ac_cs_version="\\ -+dfu-util config.status 0.1 -+configured by $0, generated by GNU Autoconf 2.60, -+ with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -+ -+Copyright (C) 2006 Free Software Foundation, Inc. -+This config.status script is free software; the Free Software Foundation -+gives unlimited permission to copy, distribute and modify it." -+ -+ac_pwd='$ac_pwd' -+srcdir='$srcdir' -+INSTALL='$INSTALL' -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+# If no file are specified by the user, then we need to provide default -+# value. By we need to know if files were specified by the user. -+ac_need_defaults=: -+while test $# != 0 -+do -+ case $1 in -+ --*=*) -+ ac_option=`expr "X$1" : 'X\([^=]*\)='` -+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` -+ ac_shift=: -+ ;; -+ *) -+ ac_option=$1 -+ ac_optarg=$2 -+ ac_shift=shift -+ ;; -+ esac -+ -+ case $ac_option in -+ # Handling of the options. -+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -+ ac_cs_recheck=: ;; -+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) -+ echo "$ac_cs_version"; exit ;; -+ --debug | --debu | --deb | --de | --d | -d ) -+ debug=: ;; -+ --file | --fil | --fi | --f ) -+ $ac_shift -+ CONFIG_FILES="$CONFIG_FILES $ac_optarg" -+ ac_need_defaults=false;; -+ --header | --heade | --head | --hea ) -+ $ac_shift -+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" -+ ac_need_defaults=false;; -+ --he | --h) -+ # Conflict between --help and --header -+ { echo "$as_me: error: ambiguous option: $1 -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; };; -+ --help | --hel | -h ) -+ echo "$ac_cs_usage"; exit ;; -+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -+ | -silent | --silent | --silen | --sile | --sil | --si | --s) -+ ac_cs_silent=: ;; -+ -+ # This is an error. -+ -*) { echo "$as_me: error: unrecognized option: $1 -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } ;; -+ -+ *) ac_config_targets="$ac_config_targets $1" -+ ac_need_defaults=false ;; -+ -+ esac -+ shift -+done -+ -+ac_configure_extra_args= -+ -+if $ac_cs_silent; then -+ exec 6>/dev/null -+ ac_configure_extra_args="$ac_configure_extra_args --silent" -+fi -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+if \$ac_cs_recheck; then -+ echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 -+ CONFIG_SHELL=$SHELL -+ export CONFIG_SHELL -+ exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -+fi -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+exec 5>>config.log -+{ -+ echo -+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -+## Running $as_me. ## -+_ASBOX -+ echo "$ac_log" -+} >&5 -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+# -+# INIT-COMMANDS -+# -+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -+ -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+ -+# Handling of arguments. -+for ac_config_target in $ac_config_targets -+do -+ case $ac_config_target in -+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; -+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; -+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; -+ -+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -+echo "$as_me: error: invalid argument: $ac_config_target" >&2;} -+ { (exit 1); exit 1; }; };; -+ esac -+done -+ -+ -+# If the user did not use the arguments to specify the items to instantiate, -+# then the envvar interface is used. Set only those that are not. -+# We use the long form for the default assignment because of an extremely -+# bizarre bug on SunOS 4.1.3. -+if $ac_need_defaults; then -+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -+fi -+ -+# Have a temporary directory for convenience. Make it in the build tree -+# simply because there is no reason against having it here, and in addition, -+# creating and moving files from /tmp can sometimes cause problems. -+# Hook for its removal unless debugging. -+# Note that there is a small window in which the directory will not be cleaned: -+# after its creation but before its name has been assigned to `$tmp'. -+$debug || -+{ -+ tmp= -+ trap 'exit_status=$? -+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -+' 0 -+ trap '{ (exit 1); exit 1; }' 1 2 13 15 -+} -+# Create a (secure) tmp directory for tmp files. -+ -+{ -+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && -+ test -n "$tmp" && test -d "$tmp" -+} || -+{ -+ tmp=./conf$$-$RANDOM -+ (umask 077 && mkdir "$tmp") -+} || -+{ -+ echo "$me: cannot create a temporary directory in ." >&2 -+ { (exit 1); exit 1; } -+} -+ -+# -+# Set up the sed scripts for CONFIG_FILES section. -+# -+ -+# No need to generate the scripts if there are no CONFIG_FILES. -+# This happens for instance when ./config.status config.h -+if test -n "$CONFIG_FILES"; then -+ -+_ACEOF -+ -+ -+ -+ac_delim='%!_!# ' -+for ac_last_try in false false false false false :; do -+ cat >conf$$subs.sed <<_ACEOF -+SHELL!$SHELL$ac_delim -+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -+PACKAGE_NAME!$PACKAGE_NAME$ac_delim -+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -+PACKAGE_STRING!$PACKAGE_STRING$ac_delim -+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -+exec_prefix!$exec_prefix$ac_delim -+prefix!$prefix$ac_delim -+program_transform_name!$program_transform_name$ac_delim -+bindir!$bindir$ac_delim -+sbindir!$sbindir$ac_delim -+libexecdir!$libexecdir$ac_delim -+datarootdir!$datarootdir$ac_delim -+datadir!$datadir$ac_delim -+sysconfdir!$sysconfdir$ac_delim -+sharedstatedir!$sharedstatedir$ac_delim -+localstatedir!$localstatedir$ac_delim -+includedir!$includedir$ac_delim -+oldincludedir!$oldincludedir$ac_delim -+docdir!$docdir$ac_delim -+infodir!$infodir$ac_delim -+htmldir!$htmldir$ac_delim -+dvidir!$dvidir$ac_delim -+pdfdir!$pdfdir$ac_delim -+psdir!$psdir$ac_delim -+libdir!$libdir$ac_delim -+localedir!$localedir$ac_delim -+mandir!$mandir$ac_delim -+DEFS!$DEFS$ac_delim -+ECHO_C!$ECHO_C$ac_delim -+ECHO_N!$ECHO_N$ac_delim -+ECHO_T!$ECHO_T$ac_delim -+LIBS!$LIBS$ac_delim -+build_alias!$build_alias$ac_delim -+host_alias!$host_alias$ac_delim -+target_alias!$target_alias$ac_delim -+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -+INSTALL_DATA!$INSTALL_DATA$ac_delim -+CYGPATH_W!$CYGPATH_W$ac_delim -+PACKAGE!$PACKAGE$ac_delim -+VERSION!$VERSION$ac_delim -+ACLOCAL!$ACLOCAL$ac_delim -+AUTOCONF!$AUTOCONF$ac_delim -+AUTOMAKE!$AUTOMAKE$ac_delim -+AUTOHEADER!$AUTOHEADER$ac_delim -+MAKEINFO!$MAKEINFO$ac_delim -+install_sh!$install_sh$ac_delim -+STRIP!$STRIP$ac_delim -+INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim -+mkdir_p!$mkdir_p$ac_delim -+AWK!$AWK$ac_delim -+SET_MAKE!$SET_MAKE$ac_delim -+am__leading_dot!$am__leading_dot$ac_delim -+AMTAR!$AMTAR$ac_delim -+am__tar!$am__tar$ac_delim -+am__untar!$am__untar$ac_delim -+MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim -+MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim -+MAINT!$MAINT$ac_delim -+CC!$CC$ac_delim -+CFLAGS!$CFLAGS$ac_delim -+LDFLAGS!$LDFLAGS$ac_delim -+CPPFLAGS!$CPPFLAGS$ac_delim -+ac_ct_CC!$ac_ct_CC$ac_delim -+EXEEXT!$EXEEXT$ac_delim -+OBJEXT!$OBJEXT$ac_delim -+DEPDIR!$DEPDIR$ac_delim -+am__include!$am__include$ac_delim -+am__quote!$am__quote$ac_delim -+AMDEP_TRUE!$AMDEP_TRUE$ac_delim -+AMDEP_FALSE!$AMDEP_FALSE$ac_delim -+AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim -+CCDEPMODE!$CCDEPMODE$ac_delim -+am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim -+am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim -+PKG_CONFIG!$PKG_CONFIG$ac_delim -+USB_CFLAGS!$USB_CFLAGS$ac_delim -+USB_LIBS!$USB_LIBS$ac_delim -+CPP!$CPP$ac_delim -+GREP!$GREP$ac_delim -+EGREP!$EGREP$ac_delim -+LIBOBJS!$LIBOBJS$ac_delim -+LTLIBOBJS!$LTLIBOBJS$ac_delim -+_ACEOF -+ -+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 85; then -+ break -+ elif $ac_last_try; then -+ { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} -+ { (exit 1); exit 1; }; } -+ else -+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! " -+ fi -+done -+ -+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -+if test -n "$ac_eof"; then -+ ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` -+ ac_eof=`expr $ac_eof + 1` -+fi -+ -+cat >>$CONFIG_STATUS <<_ACEOF -+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -+_ACEOF -+sed ' -+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -+s/^/s,@/; s/!/@,|#_!!_#|/ -+:n -+t n -+s/'"$ac_delim"'$/,g/; t -+s/$/\\/; p -+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -+' >>$CONFIG_STATUS <conf$$subs.sed -+rm -f conf$$subs.sed -+cat >>$CONFIG_STATUS <<_ACEOF -+:end -+s/|#_!!_#|//g -+CEOF$ac_eof -+_ACEOF -+ -+ -+# VPATH may cause trouble with some makes, so we remove $(srcdir), -+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -+# trailing colons and then remove the whole line if VPATH becomes empty -+# (actually we leave an empty line to preserve line numbers). -+if test "x$srcdir" = x.; then -+ ac_vpsub='/^[ ]*VPATH[ ]*=/{ -+s/:*\$(srcdir):*/:/ -+s/:*\${srcdir}:*/:/ -+s/:*@srcdir@:*/:/ -+s/^\([^=]*=[ ]*\):*/\1/ -+s/:*$// -+s/^[^=]*=[ ]*$// -+}' -+fi -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+fi # test -n "$CONFIG_FILES" -+ -+ -+for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS -+do -+ case $ac_tag in -+ :[FHLC]) ac_mode=$ac_tag; continue;; -+ esac -+ case $ac_mode$ac_tag in -+ :[FHL]*:*);; -+ :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -+echo "$as_me: error: Invalid tag $ac_tag." >&2;} -+ { (exit 1); exit 1; }; };; -+ :[FH]-) ac_tag=-:-;; -+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; -+ esac -+ ac_save_IFS=$IFS -+ IFS=: -+ set x $ac_tag -+ IFS=$ac_save_IFS -+ shift -+ ac_file=$1 -+ shift -+ -+ case $ac_mode in -+ :L) ac_source=$1;; -+ :[FH]) -+ ac_file_inputs= -+ for ac_f -+ do -+ case $ac_f in -+ -) ac_f="$tmp/stdin";; -+ *) # Look for the file first in the build tree, then in the source tree -+ # (if the path is not absolute). The absolute path cannot be DOS-style, -+ # because $ac_f cannot contain `:'. -+ test -f "$ac_f" || -+ case $ac_f in -+ [\\/$]*) false;; -+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; -+ esac || -+ { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -+echo "$as_me: error: cannot find input file: $ac_f" >&2;} -+ { (exit 1); exit 1; }; };; -+ esac -+ ac_file_inputs="$ac_file_inputs $ac_f" -+ done -+ -+ # Let's still pretend it is `configure' which instantiates (i.e., don't -+ # use $as_me), people would be surprised to read: -+ # /* config.h. Generated by config.status. */ -+ configure_input="Generated from "`IFS=: -+ echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." -+ if test x"$ac_file" != x-; then -+ configure_input="$ac_file. $configure_input" -+ { echo "$as_me:$LINENO: creating $ac_file" >&5 -+echo "$as_me: creating $ac_file" >&6;} -+ fi -+ -+ case $ac_tag in -+ *:-:* | *:-) cat >"$tmp/stdin";; -+ esac -+ ;; -+ esac -+ -+ ac_dir=`$as_dirname -- "$ac_file" || -+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$ac_file" : 'X\(//\)[^/]' \| \ -+ X"$ac_file" : 'X\(//\)$' \| \ -+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$ac_file" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ { as_dir="$ac_dir" -+ case $as_dir in #( -+ -*) as_dir=./$as_dir;; -+ esac -+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { -+ as_dirs= -+ while :; do -+ case $as_dir in #( -+ *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( -+ *) as_qdir=$as_dir;; -+ esac -+ as_dirs="'$as_qdir' $as_dirs" -+ as_dir=`$as_dirname -- "$as_dir" || -+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$as_dir" : 'X\(//\)[^/]' \| \ -+ X"$as_dir" : 'X\(//\)$' \| \ -+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$as_dir" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ test -d "$as_dir" && break -+ done -+ test -z "$as_dirs" || eval "mkdir $as_dirs" -+ } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -+echo "$as_me: error: cannot create directory $as_dir" >&2;} -+ { (exit 1); exit 1; }; }; } -+ ac_builddir=. -+ -+case "$ac_dir" in -+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -+*) -+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ # A ".." for each directory in $ac_dir_suffix. -+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` -+ case $ac_top_builddir_sub in -+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; -+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; -+ esac ;; -+esac -+ac_abs_top_builddir=$ac_pwd -+ac_abs_builddir=$ac_pwd$ac_dir_suffix -+# for backward compatibility: -+ac_top_builddir=$ac_top_build_prefix -+ -+case $srcdir in -+ .) # We are building in place. -+ ac_srcdir=. -+ ac_top_srcdir=$ac_top_builddir_sub -+ ac_abs_top_srcdir=$ac_pwd ;; -+ [\\/]* | ?:[\\/]* ) # Absolute name. -+ ac_srcdir=$srcdir$ac_dir_suffix; -+ ac_top_srcdir=$srcdir -+ ac_abs_top_srcdir=$srcdir ;; -+ *) # Relative name. -+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix -+ ac_top_srcdir=$ac_top_build_prefix$srcdir -+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -+esac -+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix -+ -+ -+ case $ac_mode in -+ :F) -+ # -+ # CONFIG_FILE -+ # -+ -+ case $INSTALL in -+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; -+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; -+ esac -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF -+# If the template does not know about datarootdir, expand it. -+# FIXME: This hack should be removed a few years after 2.60. -+ac_datarootdir_hack=; ac_datarootdir_seen= -+ -+case `sed -n '/datarootdir/ { -+ p -+ q -+} -+/@datadir@/p -+/@docdir@/p -+/@infodir@/p -+/@localedir@/p -+/@mandir@/p -+' $ac_file_inputs` in -+*datarootdir*) ac_datarootdir_seen=yes;; -+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) -+ { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF -+ ac_datarootdir_hack=' -+ s&@datadir@&$datadir&g -+ s&@docdir@&$docdir&g -+ s&@infodir@&$infodir&g -+ s&@localedir@&$localedir&g -+ s&@mandir@&$mandir&g -+ s&\\\${datarootdir}&$datarootdir&g' ;; -+esac -+_ACEOF -+ -+# Neutralize VPATH when `$srcdir' = `.'. -+# Shell code in configure.ac might set extrasub. -+# FIXME: do we really want to maintain this feature? -+cat >>$CONFIG_STATUS <<_ACEOF -+ sed "$ac_vpsub -+$extrasub -+_ACEOF -+cat >>$CONFIG_STATUS <<\_ACEOF -+:t -+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -+s&@configure_input@&$configure_input&;t t -+s&@top_builddir@&$ac_top_builddir_sub&;t t -+s&@srcdir@&$ac_srcdir&;t t -+s&@abs_srcdir@&$ac_abs_srcdir&;t t -+s&@top_srcdir@&$ac_top_srcdir&;t t -+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -+s&@builddir@&$ac_builddir&;t t -+s&@abs_builddir@&$ac_abs_builddir&;t t -+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -+s&@INSTALL@&$ac_INSTALL&;t t -+$ac_datarootdir_hack -+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out -+ -+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && -+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && -+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && -+ { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -+which seems to be undefined. Please make sure it is defined." >&5 -+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -+which seems to be undefined. Please make sure it is defined." >&2;} -+ -+ rm -f "$tmp/stdin" -+ case $ac_file in -+ -) cat "$tmp/out"; rm -f "$tmp/out";; -+ *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; -+ esac -+ ;; -+ :H) -+ # -+ # CONFIG_HEADER -+ # -+_ACEOF -+ -+# Transform confdefs.h into a sed script `conftest.defines', that -+# substitutes the proper values into config.h.in to produce config.h. -+rm -f conftest.defines conftest.tail -+# First, append a space to every undef/define line, to ease matching. -+echo 's/$/ /' >conftest.defines -+# Then, protect against being on the right side of a sed subst, or in -+# an unquoted here document, in config.status. If some macros were -+# called several times there might be several #defines for the same -+# symbol, which is useless. But do not sort them, since the last -+# AC_DEFINE must be honored. -+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -+# NAME is the cpp macro being defined, VALUE is the value it is being given. -+# PARAMS is the parameter list in the macro definition--in most cases, it's -+# just an empty string. -+ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -+ac_dB='\\)[ (].*,\\1define\\2' -+ac_dC=' ' -+ac_dD=' ,' -+ -+uniq confdefs.h | -+ sed -n ' -+ t rset -+ :rset -+ s/^[ ]*#[ ]*define[ ][ ]*// -+ t ok -+ d -+ :ok -+ s/[\\&,]/\\&/g -+ s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p -+ s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p -+ ' >>conftest.defines -+ -+# Remove the space that was appended to ease matching. -+# Then replace #undef with comments. This is necessary, for -+# example, in the case of _POSIX_SOURCE, which is predefined and required -+# on some systems where configure will not decide to define it. -+# (The regexp can be short, since the line contains either #define or #undef.) -+echo 's/ $// -+s,^[ #]*u.*,/* & */,' >>conftest.defines -+ -+# Break up conftest.defines: -+ac_max_sed_lines=50 -+ -+# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -+# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -+# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -+# et cetera. -+ac_in='$ac_file_inputs' -+ac_out='"$tmp/out1"' -+ac_nxt='"$tmp/out2"' -+ -+while : -+do -+ # Write a here document: -+ cat >>$CONFIG_STATUS <<_ACEOF -+ # First, check the format of the line: -+ cat >"\$tmp/defines.sed" <<\\CEOF -+/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -+/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -+b -+:def -+_ACEOF -+ sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS -+ echo 'CEOF -+ sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS -+ ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in -+ sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail -+ grep . conftest.tail >/dev/null || break -+ rm -f conftest.defines -+ mv conftest.tail conftest.defines -+done -+rm -f conftest.defines conftest.tail -+ -+echo "ac_result=$ac_in" >>$CONFIG_STATUS -+cat >>$CONFIG_STATUS <<\_ACEOF -+ if test x"$ac_file" != x-; then -+ echo "/* $configure_input */" >"$tmp/config.h" -+ cat "$ac_result" >>"$tmp/config.h" -+ if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then -+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -+echo "$as_me: $ac_file is unchanged" >&6;} -+ else -+ rm -f $ac_file -+ mv "$tmp/config.h" $ac_file -+ fi -+ else -+ echo "/* $configure_input */" -+ cat "$ac_result" -+ fi -+ rm -f "$tmp/out12" -+# Compute $ac_file's index in $config_headers. -+_am_stamp_count=1 -+for _am_header in $config_headers :; do -+ case $_am_header in -+ $ac_file | $ac_file:* ) -+ break ;; -+ * ) -+ _am_stamp_count=`expr $_am_stamp_count + 1` ;; -+ esac -+done -+echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || -+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X$ac_file : 'X\(//\)[^/]' \| \ -+ X$ac_file : 'X\(//\)$' \| \ -+ X$ac_file : 'X\(/\)' \| . 2>/dev/null || -+echo X$ac_file | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'`/stamp-h$_am_stamp_count -+ ;; -+ -+ :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -+echo "$as_me: executing $ac_file commands" >&6;} -+ ;; -+ esac -+ -+ -+ case $ac_file$ac_mode in -+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do -+ # Strip MF so we end up with the name of the file. -+ mf=`echo "$mf" | sed -e 's/:.*$//'` -+ # Check whether this is an Automake generated Makefile or not. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # So let's grep whole file. -+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -+ dirpart=`$as_dirname -- "$mf" || -+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$mf" : 'X\(//\)[^/]' \| \ -+ X"$mf" : 'X\(//\)$' \| \ -+ X"$mf" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$mf" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ else -+ continue -+ fi -+ # Extract the definition of DEPDIR, am__include, and am__quote -+ # from the Makefile without running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ am__include=`sed -n 's/^am__include = //p' < "$mf"` -+ test -z "am__include" && continue -+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ # Find all dependency output files, they are included files with -+ # $(DEPDIR) in their names. We invoke sed twice because it is the -+ # simplest approach to changing $(DEPDIR) to its actual value in the -+ # expansion. -+ for file in `sed -n " -+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`$as_dirname -- "$file" || -+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$file" : 'X\(//\)[^/]' \| \ -+ X"$file" : 'X\(//\)$' \| \ -+ X"$file" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$file" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ { as_dir=$dirpart/$fdir -+ case $as_dir in #( -+ -*) as_dir=./$as_dir;; -+ esac -+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { -+ as_dirs= -+ while :; do -+ case $as_dir in #( -+ *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( -+ *) as_qdir=$as_dir;; -+ esac -+ as_dirs="'$as_qdir' $as_dirs" -+ as_dir=`$as_dirname -- "$as_dir" || -+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$as_dir" : 'X\(//\)[^/]' \| \ -+ X"$as_dir" : 'X\(//\)$' \| \ -+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -+echo X"$as_dir" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` -+ test -d "$as_dir" && break -+ done -+ test -z "$as_dirs" || eval "mkdir $as_dirs" -+ } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -+echo "$as_me: error: cannot create directory $as_dir" >&2;} -+ { (exit 1); exit 1; }; }; } -+ # echo "creating $dirpart/$file" -+ echo '# dummy' > "$dirpart/$file" -+ done -+done -+ ;; -+ -+ esac -+done # for ac_tag -+ -+ -+{ (exit 0); exit 0; } -+_ACEOF -+chmod +x $CONFIG_STATUS -+ac_clean_files=$ac_clean_files_save -+ -+ -+# configure is writing to config.log, and then calls config.status. -+# config.status does its own redirection, appending to config.log. -+# Unfortunately, on DOS this fails, as config.log is still kept open -+# by configure, so config.status won't be able to write to it; its -+# output is simply discarded. So we exec the FD to /dev/null, -+# effectively closing config.log, so it can be properly (re)opened and -+# appended to by config.status. When coming back to configure, we -+# need to make the FD available again. -+if test "$no_create" != yes; then -+ ac_cs_success=: -+ ac_config_status_args= -+ test "$silent" = yes && -+ ac_config_status_args="$ac_config_status_args --quiet" -+ exec 5>/dev/null -+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false -+ exec 5>>config.log -+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which -+ # would make configure fail if this is the last instruction. -+ $ac_cs_success || { (exit 1); exit 1; } -+fi -+ -diff --git a/tools/dfu-util/configure.ac b/tools/dfu-util/configure.ac -new file mode 100644 -index 0000000..9f141c7 ---- /dev/null -+++ b/tools/dfu-util/configure.ac -@@ -0,0 +1,39 @@ -+# -*- Autoconf -*- -+# Process this file with autoconf to produce a configure script. -+ -+AC_PREREQ(2.59) -+AC_INIT([dfu-util],[0.1]) -+AC_CONFIG_AUX_DIR(m4) -+AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -+#AC_CONFIG_SRCDIR([src/atmel.c]) -+AM_CONFIG_HEADER([config.h]) -+ -+AM_MAINTAINER_MODE -+ -+# Checks for programs. -+AC_PROG_CC -+ -+# Checks for libraries. -+ -+PKG_CHECK_MODULES(USB, libusb >= 0.1.4,, -+ AC_MSG_ERROR([*** Required libusb >= 0.1.4 not installed ***])) -+AC_CHECK_LIB([usbpath],[usb_path2devnum],,,-lusb) -+ -+LIBS="$LIBS $USB_LIBS" -+CFLAGS="$CFLAGS $USB_CFLAGS" -+ -+# Checks for header files. -+AC_HEADER_STDC -+AC_CHECK_HEADERS([stdlib.h string.h stdio.h usbpath.h]) -+ -+# Checks for typedefs, structures, and compiler characteristics. -+AC_C_CONST -+AC_TYPE_SIZE_T -+ -+# Checks for library functions. -+AC_FUNC_MALLOC -+AC_FUNC_MEMCMP -+AC_CHECK_FUNCS([memset]) -+ -+AC_CONFIG_FILES(Makefile src/Makefile) -+AC_OUTPUT -diff --git a/tools/dfu-util/m4/depcomp b/tools/dfu-util/m4/depcomp -new file mode 100644 -index 0000000..04701da ---- /dev/null -+++ b/tools/dfu-util/m4/depcomp -@@ -0,0 +1,530 @@ -+#! /bin/sh -+# depcomp - compile a program generating dependencies as side-effects -+ -+scriptversion=2005-07-09.11 -+ -+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. -+ -+# This program 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA -+# 02110-1301, 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. -+ -+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. -+ -+case $1 in -+ '') -+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2 -+ exit 1; -+ ;; -+ -h | --h*) -+ cat <<\EOF -+Usage: depcomp [--help] [--version] PROGRAM [ARGS] -+ -+Run PROGRAMS ARGS to compile a file, generating dependencies -+as side-effects. -+ -+Environment variables: -+ depmode Dependency tracking mode. -+ source Source file read by `PROGRAMS ARGS'. -+ object Object file output by `PROGRAMS ARGS'. -+ DEPDIR directory where to store dependencies. -+ depfile Dependency file to output. -+ tmpdepfile Temporary file to use when outputing dependencies. -+ libtool Whether libtool is used (yes/no). -+ -+Report bugs to <bug-automake@gnu.org>. -+EOF -+ exit $? -+ ;; -+ -v | --v*) -+ echo "depcomp $scriptversion" -+ exit $? -+ ;; -+esac -+ -+if test -z "$depmode" || test -z "$source" || test -z "$object"; then -+ echo "depcomp: Variables source, object and depmode must be set" 1>&2 -+ exit 1 -+fi -+ -+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -+depfile=${depfile-`echo "$object" | -+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} -+ -+rm -f "$tmpdepfile" -+ -+# Some modes work just like other modes, but use different flags. We -+# parameterize here, but still list the modes in the big case below, -+# to make depend.m4 easier to write. Note that we *cannot* use a case -+# here, because this file can only contain one case statement. -+if test "$depmode" = hp; then -+ # HP compiler uses -M and no extra arg. -+ gccflag=-M -+ depmode=gcc -+fi -+ -+if test "$depmode" = dashXmstdout; then -+ # This is just like dashmstdout with a different argument. -+ dashmflag=-xM -+ depmode=dashmstdout -+fi -+ -+case "$depmode" in -+gcc3) -+## gcc 3 implements dependency tracking that does exactly what -+## we want. Yay! Note: for some reason libtool 1.4 doesn't like -+## it if -MD -MP comes after the -MF stuff. Hmm. -+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ mv "$tmpdepfile" "$depfile" -+ ;; -+ -+gcc) -+## There are various ways to get dependency output from gcc. Here's -+## why we pick this rather obscure method: -+## - Don't want to use -MD because we'd like the dependencies to end -+## up in a subdir. Having to rename by hand is ugly. -+## (We might end up doing this anyway to support other compilers.) -+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -+## -MM, not -M (despite what the docs say). -+## - Using -M directly means running the compiler twice (even worse -+## than renaming). -+ if test -z "$gccflag"; then -+ gccflag=-MD, -+ fi -+ "$@" -Wp,"$gccflag$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -+## The second -e expression handles DOS-style file names with drive letters. -+ sed -e 's/^[^:]*: / /' \ -+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -+## This next piece of magic avoids the `deleted header file' problem. -+## The problem is that when a header file which appears in a .P file -+## is deleted, the dependency causes make to die (because there is -+## typically no way to rebuild the header). We avoid this by adding -+## dummy dependencies for each header file. Too bad gcc doesn't do -+## this for us directly. -+ tr ' ' ' -+' < "$tmpdepfile" | -+## Some versions of gcc put a space before the `:'. On the theory -+## that the space means something, we add a space to the output as -+## well. -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+hp) -+ # This case exists only to let depend.m4 do its work. It works by -+ # looking at the text of this script. This case will never be run, -+ # since it is checked for above. -+ exit 1 -+ ;; -+ -+sgi) -+ if test "$libtool" = yes; then -+ "$@" "-Wp,-MDupdate,$tmpdepfile" -+ else -+ "$@" -MDupdate "$tmpdepfile" -+ fi -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ -+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files -+ echo "$object : \\" > "$depfile" -+ -+ # Clip off the initial element (the dependent). Don't try to be -+ # clever and replace this with sed code, as IRIX sed won't handle -+ # lines with more than a fixed number of characters (4096 in -+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; -+ # the IRIX cc adds comments like `#:fec' to the end of the -+ # dependency line. -+ tr ' ' ' -+' < "$tmpdepfile" \ -+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ -+ tr ' -+' ' ' >> $depfile -+ echo >> $depfile -+ -+ # The second pass generates a dummy entry for each header file. -+ tr ' ' ' -+' < "$tmpdepfile" \ -+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ -+ >> $depfile -+ else -+ # The sourcefile does not contain any dependencies, so just -+ # store a dummy comment line, to avoid errors with the Makefile -+ # "include basename.Plo" scheme. -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+aix) -+ # The C for AIX Compiler uses -M and outputs the dependencies -+ # in a .u file. In older versions, this file always lives in the -+ # current directory. Also, the AIX compiler puts `$object:' at the -+ # start of each line; $object doesn't have directory information. -+ # Version 6 uses the directory in both cases. -+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` -+ tmpdepfile="$stripped.u" -+ if test "$libtool" = yes; then -+ "$@" -Wc,-M -+ else -+ "$@" -M -+ fi -+ stat=$? -+ -+ if test -f "$tmpdepfile"; then : -+ else -+ stripped=`echo "$stripped" | sed 's,^.*/,,'` -+ tmpdepfile="$stripped.u" -+ fi -+ -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ -+ if test -f "$tmpdepfile"; then -+ outname="$stripped.o" -+ # Each line is of the form `foo.o: dependent.h'. -+ # Do two passes, one to just change these to -+ # `$object: dependent.h' and one to simply `dependent.h:'. -+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" -+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" -+ else -+ # The sourcefile does not contain any dependencies, so just -+ # store a dummy comment line, to avoid errors with the Makefile -+ # "include basename.Plo" scheme. -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+icc) -+ # Intel's C compiler understands `-MD -MF file'. However on -+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c -+ # ICC 7.0 will fill foo.d with something like -+ # foo.o: sub/foo.c -+ # foo.o: sub/foo.h -+ # which is wrong. We want: -+ # sub/foo.o: sub/foo.c -+ # sub/foo.o: sub/foo.h -+ # sub/foo.c: -+ # sub/foo.h: -+ # ICC 7.1 will output -+ # foo.o: sub/foo.c sub/foo.h -+ # and will wrap long lines using \ : -+ # foo.o: sub/foo.c ... \ -+ # sub/foo.h ... \ -+ # ... -+ -+ "$@" -MD -MF "$tmpdepfile" -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile" -+ exit $stat -+ fi -+ rm -f "$depfile" -+ # Each line is of the form `foo.o: dependent.h', -+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. -+ # Do two passes, one to just change these to -+ # `$object: dependent.h' and one to simply `dependent.h:'. -+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" -+ # Some versions of the HPUX 10.20 sed can't process this invocation -+ # correctly. Breaking it into two sed invocations is a workaround. -+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | -+ sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+tru64) -+ # The Tru64 compiler uses -MD to generate dependencies as a side -+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. -+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put -+ # dependencies in `foo.d' instead, so we check for that too. -+ # Subdirectories are respected. -+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` -+ test "x$dir" = "x$object" && dir= -+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` -+ -+ if test "$libtool" = yes; then -+ # With Tru64 cc, shared objects can also be used to make a -+ # static library. This mecanism is used in libtool 1.4 series to -+ # handle both shared and static libraries in a single compilation. -+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. -+ # -+ # With libtool 1.5 this exception was removed, and libtool now -+ # generates 2 separate objects for the 2 libraries. These two -+ # compilations output dependencies in in $dir.libs/$base.o.d and -+ # in $dir$base.o.d. We have to check for both files, because -+ # one of the two compilations can be disabled. We should prefer -+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is -+ # automatically cleaned when .libs/ is deleted, while ignoring -+ # the former would cause a distcleancheck panic. -+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 -+ tmpdepfile2=$dir$base.o.d # libtool 1.5 -+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 -+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 -+ "$@" -Wc,-MD -+ else -+ tmpdepfile1=$dir$base.o.d -+ tmpdepfile2=$dir$base.d -+ tmpdepfile3=$dir$base.d -+ tmpdepfile4=$dir$base.d -+ "$@" -MD -+ fi -+ -+ stat=$? -+ if test $stat -eq 0; then : -+ else -+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" -+ exit $stat -+ fi -+ -+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" -+ do -+ test -f "$tmpdepfile" && break -+ done -+ if test -f "$tmpdepfile"; then -+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" -+ # That's a tab and a space in the []. -+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" -+ else -+ echo "#dummy" > "$depfile" -+ fi -+ rm -f "$tmpdepfile" -+ ;; -+ -+#nosideeffect) -+ # This comment above is used by automake to tell side-effect -+ # dependency tracking mechanisms from slower ones. -+ -+dashmstdout) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout, regardless of -o. -+ "$@" || exit $? -+ -+ # Remove the call to Libtool. -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ -+ # Remove `-o $object'. -+ IFS=" " -+ for arg -+ do -+ case $arg in -+ -o) -+ shift -+ ;; -+ $object) -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift # fnord -+ shift # $arg -+ ;; -+ esac -+ done -+ -+ test -z "$dashmflag" && dashmflag=-M -+ # Require at least two characters before searching for `:' -+ # in the target name. This is to cope with DOS-style filenames: -+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. -+ "$@" $dashmflag | -+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" -+ rm -f "$depfile" -+ cat < "$tmpdepfile" > "$depfile" -+ tr ' ' ' -+' < "$tmpdepfile" | \ -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+dashXmstdout) -+ # This case only exists to satisfy depend.m4. It is never actually -+ # run, as this mode is specially recognized in the preamble. -+ exit 1 -+ ;; -+ -+makedepend) -+ "$@" || exit $? -+ # Remove any Libtool call -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ # X makedepend -+ shift -+ cleared=no -+ for arg in "$@"; do -+ case $cleared in -+ no) -+ set ""; shift -+ cleared=yes ;; -+ esac -+ case "$arg" in -+ -D*|-I*) -+ set fnord "$@" "$arg"; shift ;; -+ # Strip any option that makedepend may not understand. Remove -+ # the object too, otherwise makedepend will parse it as a source file. -+ -*|$object) -+ ;; -+ *) -+ set fnord "$@" "$arg"; shift ;; -+ esac -+ done -+ obj_suffix="`echo $object | sed 's/^.*\././'`" -+ touch "$tmpdepfile" -+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" -+ rm -f "$depfile" -+ cat < "$tmpdepfile" > "$depfile" -+ sed '1,2d' "$tmpdepfile" | tr ' ' ' -+' | \ -+## Some versions of the HPUX 10.20 sed can't process this invocation -+## correctly. Breaking it into two sed invocations is a workaround. -+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" "$tmpdepfile".bak -+ ;; -+ -+cpp) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout. -+ "$@" || exit $? -+ -+ # Remove the call to Libtool. -+ if test "$libtool" = yes; then -+ while test $1 != '--mode=compile'; do -+ shift -+ done -+ shift -+ fi -+ -+ # Remove `-o $object'. -+ IFS=" " -+ for arg -+ do -+ case $arg in -+ -o) -+ shift -+ ;; -+ $object) -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift # fnord -+ shift # $arg -+ ;; -+ esac -+ done -+ -+ "$@" -E | -+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | -+ sed '$ s: \\$::' > "$tmpdepfile" -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ cat < "$tmpdepfile" >> "$depfile" -+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+msvisualcpp) -+ # Important note: in order to support this mode, a compiler *must* -+ # always write the preprocessed file to stdout, regardless of -o, -+ # because we must use -o when running libtool. -+ "$@" || exit $? -+ IFS=" " -+ for arg -+ do -+ case "$arg" in -+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") -+ set fnord "$@" -+ shift -+ shift -+ ;; -+ *) -+ set fnord "$@" "$arg" -+ shift -+ shift -+ ;; -+ esac -+ done -+ "$@" -E | -+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" -+ rm -f "$depfile" -+ echo "$object : \\" > "$depfile" -+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" -+ echo " " >> "$depfile" -+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" -+ rm -f "$tmpdepfile" -+ ;; -+ -+none) -+ exec "$@" -+ ;; -+ -+*) -+ echo "Unknown depmode $depmode" 1>&2 -+ exit 1 -+ ;; -+esac -+ -+exit 0 -+ -+# Local Variables: -+# mode: shell-script -+# sh-indentation: 2 -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --git a/tools/dfu-util/m4/install-sh b/tools/dfu-util/m4/install-sh -new file mode 100644 -index 0000000..4d4a951 ---- /dev/null -+++ b/tools/dfu-util/m4/install-sh -@@ -0,0 +1,323 @@ -+#!/bin/sh -+# install - install a program, script, or datafile -+ -+scriptversion=2005-05-14.22 -+ -+# This originates from X11R5 (mit/util/scripts/install.sh), which was -+# later released in X11R6 (xc/config/util/install.sh) with the -+# following copyright and license. -+# -+# Copyright (C) 1994 X Consortium -+# -+# Permission is hereby granted, free of charge, to any person obtaining a copy -+# of this software and associated documentation files (the "Software"), to -+# deal in the Software without restriction, including without limitation the -+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -+# sell copies of the Software, and to permit persons to whom the Software is -+# furnished to do so, subject to the following conditions: -+# -+# The above copyright notice and this permission notice shall be included in -+# all copies or substantial portions of the Software. -+# -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+# -+# Except as contained in this notice, the name of the X Consortium shall not -+# be used in advertising or otherwise to promote the sale, use or other deal- -+# ings in this Software without prior written authorization from the X Consor- -+# tium. -+# -+# -+# FSF changes to this file are in the public domain. -+# -+# Calling this script install-sh is preferred over install.sh, to prevent -+# `make' implicit rules from creating a file called install from it -+# when there is no Makefile. -+# -+# This script is compatible with the BSD install script, but was written -+# from scratch. It can only install one file at a time, a restriction -+# shared with many OS's install programs. -+ -+# set DOITPROG to echo to test this script -+ -+# Don't use :- since 4.3BSD and earlier shells don't like it. -+doit="${DOITPROG-}" -+ -+# put in absolute paths if you don't have them in your path; or use env. vars. -+ -+mvprog="${MVPROG-mv}" -+cpprog="${CPPROG-cp}" -+chmodprog="${CHMODPROG-chmod}" -+chownprog="${CHOWNPROG-chown}" -+chgrpprog="${CHGRPPROG-chgrp}" -+stripprog="${STRIPPROG-strip}" -+rmprog="${RMPROG-rm}" -+mkdirprog="${MKDIRPROG-mkdir}" -+ -+chmodcmd="$chmodprog 0755" -+chowncmd= -+chgrpcmd= -+stripcmd= -+rmcmd="$rmprog -f" -+mvcmd="$mvprog" -+src= -+dst= -+dir_arg= -+dstarg= -+no_target_directory= -+ -+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE -+ or: $0 [OPTION]... SRCFILES... DIRECTORY -+ or: $0 [OPTION]... -t DIRECTORY SRCFILES... -+ or: $0 [OPTION]... -d DIRECTORIES... -+ -+In the 1st form, copy SRCFILE to DSTFILE. -+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -+In the 4th, create DIRECTORIES. -+ -+Options: -+-c (ignored) -+-d create directories instead of installing files. -+-g GROUP $chgrpprog installed files to GROUP. -+-m MODE $chmodprog installed files to MODE. -+-o USER $chownprog installed files to USER. -+-s $stripprog installed files. -+-t DIRECTORY install into DIRECTORY. -+-T report an error if DSTFILE is a directory. -+--help display this help and exit. -+--version display version info and exit. -+ -+Environment variables override the default commands: -+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG -+" -+ -+while test -n "$1"; do -+ case $1 in -+ -c) shift -+ continue;; -+ -+ -d) dir_arg=true -+ shift -+ continue;; -+ -+ -g) chgrpcmd="$chgrpprog $2" -+ shift -+ shift -+ continue;; -+ -+ --help) echo "$usage"; exit $?;; -+ -+ -m) chmodcmd="$chmodprog $2" -+ shift -+ shift -+ continue;; -+ -+ -o) chowncmd="$chownprog $2" -+ shift -+ shift -+ continue;; -+ -+ -s) stripcmd=$stripprog -+ shift -+ continue;; -+ -+ -t) dstarg=$2 -+ shift -+ shift -+ continue;; -+ -+ -T) no_target_directory=true -+ shift -+ continue;; -+ -+ --version) echo "$0 $scriptversion"; exit $?;; -+ -+ *) # When -d is used, all remaining arguments are directories to create. -+ # When -t is used, the destination is already specified. -+ test -n "$dir_arg$dstarg" && break -+ # Otherwise, the last argument is the destination. Remove it from $@. -+ for arg -+ do -+ if test -n "$dstarg"; then -+ # $@ is not empty: it contains at least $arg. -+ set fnord "$@" "$dstarg" -+ shift # fnord -+ fi -+ shift # arg -+ dstarg=$arg -+ done -+ break;; -+ esac -+done -+ -+if test -z "$1"; then -+ if test -z "$dir_arg"; then -+ echo "$0: no input file specified." >&2 -+ exit 1 -+ fi -+ # It's OK to call `install-sh -d' without argument. -+ # This can happen when creating conditional directories. -+ exit 0 -+fi -+ -+for src -+do -+ # Protect names starting with `-'. -+ case $src in -+ -*) src=./$src ;; -+ esac -+ -+ if test -n "$dir_arg"; then -+ dst=$src -+ src= -+ -+ if test -d "$dst"; then -+ mkdircmd=: -+ chmodcmd= -+ else -+ mkdircmd=$mkdirprog -+ fi -+ else -+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command -+ # might cause directories to be created, which would be especially bad -+ # if $src (and thus $dsttmp) contains '*'. -+ if test ! -f "$src" && test ! -d "$src"; then -+ echo "$0: $src does not exist." >&2 -+ exit 1 -+ fi -+ -+ if test -z "$dstarg"; then -+ echo "$0: no destination specified." >&2 -+ exit 1 -+ fi -+ -+ dst=$dstarg -+ # Protect names starting with `-'. -+ case $dst in -+ -*) dst=./$dst ;; -+ esac -+ -+ # If destination is a directory, append the input filename; won't work -+ # if double slashes aren't ignored. -+ if test -d "$dst"; then -+ if test -n "$no_target_directory"; then -+ echo "$0: $dstarg: Is a directory" >&2 -+ exit 1 -+ fi -+ dst=$dst/`basename "$src"` -+ fi -+ fi -+ -+ # This sed command emulates the dirname command. -+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` -+ -+ # Make sure that the destination directory exists. -+ -+ # Skip lots of stat calls in the usual case. -+ if test ! -d "$dstdir"; then -+ defaultIFS=' -+ ' -+ IFS="${IFS-$defaultIFS}" -+ -+ oIFS=$IFS -+ # Some sh's can't handle IFS=/ for some reason. -+ IFS='%' -+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -+ shift -+ IFS=$oIFS -+ -+ pathcomp= -+ -+ while test $# -ne 0 ; do -+ pathcomp=$pathcomp$1 -+ shift -+ if test ! -d "$pathcomp"; then -+ $mkdirprog "$pathcomp" -+ # mkdir can fail with a `File exist' error in case several -+ # install-sh are creating the directory concurrently. This -+ # is OK. -+ test -d "$pathcomp" || exit -+ fi -+ pathcomp=$pathcomp/ -+ done -+ fi -+ -+ if test -n "$dir_arg"; then -+ $doit $mkdircmd "$dst" \ -+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ -+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ -+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ -+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } -+ -+ else -+ dstfile=`basename "$dst"` -+ -+ # Make a couple of temp file names in the proper directory. -+ dsttmp=$dstdir/_inst.$$_ -+ rmtmp=$dstdir/_rm.$$_ -+ -+ # Trap to clean up those temp files at exit. -+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 -+ trap '(exit $?); exit' 1 2 13 15 -+ -+ # Copy the file name to the temp name. -+ $doit $cpprog "$src" "$dsttmp" && -+ -+ # and set any options; do chmod last to preserve setuid bits. -+ # -+ # If any of these fail, we abort the whole thing. If we want to -+ # ignore errors from any of these, just make sure not to ignore -+ # errors from the above "$doit $cpprog $src $dsttmp" command. -+ # -+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ -+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ -+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ -+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && -+ -+ # Now rename the file to the real destination. -+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ -+ || { -+ # The rename failed, perhaps because mv can't rename something else -+ # to itself, or perhaps because mv is so ancient that it does not -+ # support -f. -+ -+ # Now remove or move aside any old file at destination location. -+ # We try this two ways since rm can't unlink itself on some -+ # systems and the destination file might be busy for other -+ # reasons. In this case, the final cleanup might fail but the new -+ # file should still install successfully. -+ { -+ if test -f "$dstdir/$dstfile"; then -+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ -+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ -+ || { -+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 -+ (exit 1); exit 1 -+ } -+ else -+ : -+ fi -+ } && -+ -+ # Now rename the file to the real destination. -+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" -+ } -+ } -+ fi || { (exit 1); exit 1; } -+done -+ -+# The final little trick to "correctly" pass the exit status to the exit trap. -+{ -+ (exit 0); exit 0 -+} -+ -+# Local variables: -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --git a/tools/dfu-util/m4/missing b/tools/dfu-util/m4/missing -new file mode 100644 -index 0000000..894e786 ---- /dev/null -+++ b/tools/dfu-util/m4/missing -@@ -0,0 +1,360 @@ -+#! /bin/sh -+# Common stub for a few missing GNU programs while installing. -+ -+scriptversion=2005-06-08.21 -+ -+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 -+# Free Software Foundation, Inc. -+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. -+ -+# This program 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA -+# 02110-1301, 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. -+ -+if test $# -eq 0; then -+ echo 1>&2 "Try \`$0 --help' for more information" -+ exit 1 -+fi -+ -+run=: -+ -+# In the cases where this matters, `missing' is being run in the -+# srcdir already. -+if test -f configure.ac; then -+ configure_ac=configure.ac -+else -+ configure_ac=configure.in -+fi -+ -+msg="missing on your system" -+ -+case "$1" in -+--run) -+ # Try to run requested program, and just exit if it succeeds. -+ run= -+ shift -+ "$@" && exit 0 -+ # Exit code 63 means version mismatch. This often happens -+ # when the user try to use an ancient version of a tool on -+ # a file that requires a minimum version. In this case we -+ # we should proceed has if the program had been absent, or -+ # if --run hadn't been passed. -+ if test $? = 63; then -+ run=: -+ msg="probably too old" -+ fi -+ ;; -+ -+ -h|--h|--he|--hel|--help) -+ echo "\ -+$0 [OPTION]... PROGRAM [ARGUMENT]... -+ -+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -+error status if there is no known handling for PROGRAM. -+ -+Options: -+ -h, --help display this help and exit -+ -v, --version output version information and exit -+ --run try to run the given command, and emulate it if it fails -+ -+Supported PROGRAM values: -+ aclocal touch file \`aclocal.m4' -+ autoconf touch file \`configure' -+ autoheader touch file \`config.h.in' -+ automake touch all \`Makefile.in' files -+ bison create \`y.tab.[ch]', if possible, from existing .[ch] -+ flex create \`lex.yy.c', if possible, from existing .c -+ help2man touch the output file -+ lex create \`lex.yy.c', if possible, from existing .c -+ makeinfo touch the output file -+ tar try tar, gnutar, gtar, then tar without non-portable flags -+ yacc create \`y.tab.[ch]', if possible, from existing .[ch] -+ -+Send bug reports to <bug-automake@gnu.org>." -+ exit $? -+ ;; -+ -+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) -+ echo "missing $scriptversion (GNU Automake)" -+ exit $? -+ ;; -+ -+ -*) -+ echo 1>&2 "$0: Unknown \`$1' option" -+ echo 1>&2 "Try \`$0 --help' for more information" -+ exit 1 -+ ;; -+ -+esac -+ -+# Now exit if we have it, but it failed. Also exit now if we -+# don't have it and --version was passed (most likely to detect -+# the program). -+case "$1" in -+ lex|yacc) -+ # Not GNU programs, they don't have --version. -+ ;; -+ -+ tar) -+ if test -n "$run"; then -+ echo 1>&2 "ERROR: \`tar' requires --run" -+ exit 1 -+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then -+ exit 1 -+ fi -+ ;; -+ -+ *) -+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then -+ # We have it, but it failed. -+ exit 1 -+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then -+ # Could not run --version or --help. This is probably someone -+ # running `$TOOL --version' or `$TOOL --help' to check whether -+ # $TOOL exists and not knowing $TOOL uses missing. -+ exit 1 -+ fi -+ ;; -+esac -+ -+# If it does not exist, or fails to run (possibly an outdated version), -+# try to emulate it. -+case "$1" in -+ aclocal*) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want -+ to install the \`Automake' and \`Perl' packages. Grab them from -+ any GNU archive site." -+ touch aclocal.m4 -+ ;; -+ -+ autoconf) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`${configure_ac}'. You might want to install the -+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU -+ archive site." -+ touch configure -+ ;; -+ -+ autoheader) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`acconfig.h' or \`${configure_ac}'. You might want -+ to install the \`Autoconf' and \`GNU m4' packages. Grab them -+ from any GNU archive site." -+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` -+ test -z "$files" && files="config.h" -+ touch_files= -+ for f in $files; do -+ case "$f" in -+ *:*) touch_files="$touch_files "`echo "$f" | -+ sed -e 's/^[^:]*://' -e 's/:.*//'`;; -+ *) touch_files="$touch_files $f.in";; -+ esac -+ done -+ touch $touch_files -+ ;; -+ -+ automake*) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. -+ You might want to install the \`Automake' and \`Perl' packages. -+ Grab them from any GNU archive site." -+ find . -type f -name Makefile.am -print | -+ sed 's/\.am$/.in/' | -+ while read f; do touch "$f"; done -+ ;; -+ -+ autom4te) -+ echo 1>&2 "\ -+WARNING: \`$1' is needed, but is $msg. -+ You might have modified some files without having the -+ proper tools for further handling them. -+ You can get \`$1' as part of \`Autoconf' from any GNU -+ archive site." -+ -+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` -+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` -+ if test -f "$file"; then -+ touch $file -+ else -+ test -z "$file" || exec >$file -+ echo "#! /bin/sh" -+ echo "# Created by GNU Automake missing as a replacement of" -+ echo "# $ $@" -+ echo "exit 0" -+ chmod +x $file -+ exit 1 -+ fi -+ ;; -+ -+ bison|yacc) -+ echo 1>&2 "\ -+WARNING: \`$1' $msg. You should only need it if -+ you modified a \`.y' file. You may need the \`Bison' package -+ in order for those modifications to take effect. You can get -+ \`Bison' from any GNU archive site." -+ rm -f y.tab.c y.tab.h -+ if [ $# -ne 1 ]; then -+ eval LASTARG="\${$#}" -+ case "$LASTARG" in -+ *.y) -+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" y.tab.c -+ fi -+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" y.tab.h -+ fi -+ ;; -+ esac -+ fi -+ if [ ! -f y.tab.h ]; then -+ echo >y.tab.h -+ fi -+ if [ ! -f y.tab.c ]; then -+ echo 'main() { return 0; }' >y.tab.c -+ fi -+ ;; -+ -+ lex|flex) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a \`.l' file. You may need the \`Flex' package -+ in order for those modifications to take effect. You can get -+ \`Flex' from any GNU archive site." -+ rm -f lex.yy.c -+ if [ $# -ne 1 ]; then -+ eval LASTARG="\${$#}" -+ case "$LASTARG" in -+ *.l) -+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` -+ if [ -f "$SRCFILE" ]; then -+ cp "$SRCFILE" lex.yy.c -+ fi -+ ;; -+ esac -+ fi -+ if [ ! -f lex.yy.c ]; then -+ echo 'main() { return 0; }' >lex.yy.c -+ fi -+ ;; -+ -+ help2man) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a dependency of a manual page. You may need the -+ \`Help2man' package in order for those modifications to take -+ effect. You can get \`Help2man' from any GNU archive site." -+ -+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` -+ if test -z "$file"; then -+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` -+ fi -+ if [ -f "$file" ]; then -+ touch $file -+ else -+ test -z "$file" || exec >$file -+ echo ".ab help2man is required to generate this page" -+ exit 1 -+ fi -+ ;; -+ -+ makeinfo) -+ echo 1>&2 "\ -+WARNING: \`$1' is $msg. You should only need it if -+ you modified a \`.texi' or \`.texinfo' file, or any other file -+ indirectly affecting the aspect of the manual. The spurious -+ call might also be the consequence of using a buggy \`make' (AIX, -+ DU, IRIX). You might want to install the \`Texinfo' package or -+ the \`GNU make' package. Grab either from any GNU archive site." -+ # The file to touch is that specified with -o ... -+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` -+ if test -z "$file"; then -+ # ... or it is the one specified with @setfilename ... -+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` -+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` -+ # ... or it is derived from the source name (dir/f.texi becomes f.info) -+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info -+ fi -+ # If the file does not exist, the user really needs makeinfo; -+ # let's fail without touching anything. -+ test -f $file || exit 1 -+ touch $file -+ ;; -+ -+ tar) -+ shift -+ -+ # We have already tried tar in the generic part. -+ # Look for gnutar/gtar before invocation to avoid ugly error -+ # messages. -+ if (gnutar --version > /dev/null 2>&1); then -+ gnutar "$@" && exit 0 -+ fi -+ if (gtar --version > /dev/null 2>&1); then -+ gtar "$@" && exit 0 -+ fi -+ firstarg="$1" -+ if shift; then -+ case "$firstarg" in -+ *o*) -+ firstarg=`echo "$firstarg" | sed s/o//` -+ tar "$firstarg" "$@" && exit 0 -+ ;; -+ esac -+ case "$firstarg" in -+ *h*) -+ firstarg=`echo "$firstarg" | sed s/h//` -+ tar "$firstarg" "$@" && exit 0 -+ ;; -+ esac -+ fi -+ -+ echo 1>&2 "\ -+WARNING: I can't seem to be able to run \`tar' with the given arguments. -+ You may want to install GNU tar or Free paxutils, or check the -+ command line arguments." -+ exit 1 -+ ;; -+ -+ *) -+ echo 1>&2 "\ -+WARNING: \`$1' is needed, and is $msg. -+ You might have modified some files without having the -+ proper tools for further handling them. Check the \`README' file, -+ it often tells you about the needed prerequisites for installing -+ this package. You may also peek at any GNU archive site, in case -+ some other package would contain this missing \`$1' program." -+ exit 1 -+ ;; -+esac -+ -+exit 0 -+ -+# Local variables: -+# eval: (add-hook 'write-file-hooks 'time-stamp) -+# time-stamp-start: "scriptversion=" -+# time-stamp-format: "%:y-%02m-%02d.%02H" -+# time-stamp-end: "$" -+# End: -diff --git a/tools/dfu-util/src/Makefile.am b/tools/dfu-util/src/Makefile.am -new file mode 100644 -index 0000000..75730dd ---- /dev/null -+++ b/tools/dfu-util/src/Makefile.am -@@ -0,0 +1,16 @@ -+AM_CFLAGS = -Wall -+ -+dfu-version.h: -+ echo -e '#ifndef DFU_UTIL_VERSION' \ -+ '\n#define DFU_UTIL_VERSION "'`svnversion`'"' \ -+ '\n#endif' > dfu-version.h -+BUILT_SOURCES = dfu-version.h -+ -+bin_PROGRAMS = dfu-util dfu-util_static -+dfu_util_SOURCES = main.c sam7dfu.c dfu.c dfu.h -+ -+dfu_util_static_SOURCES = main.c sam7dfu.c dfu.c dfu.h -+dfu_util_static_LDFLAGS = -static -+ -+# commands.c commands.h sam7dfu.c -+ -diff --git a/tools/dfu-util/src/Makefile.in b/tools/dfu-util/src/Makefile.in -new file mode 100644 -index 0000000..c18609f ---- /dev/null -+++ b/tools/dfu-util/src/Makefile.in -@@ -0,0 +1,425 @@ -+# Makefile.in generated by automake 1.9.6 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004, 2005 Free Software Foundation, Inc. -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ -+ -+srcdir = @srcdir@ -+top_srcdir = @top_srcdir@ -+VPATH = @srcdir@ -+pkgdatadir = $(datadir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkgincludedir = $(includedir)/@PACKAGE@ -+top_builddir = .. -+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -+INSTALL = @INSTALL@ -+install_sh_DATA = $(install_sh) -c -m 644 -+install_sh_PROGRAM = $(install_sh) -c -+install_sh_SCRIPT = $(install_sh) -c -+INSTALL_HEADER = $(INSTALL_DATA) -+transform = $(program_transform_name) -+NORMAL_INSTALL = : -+PRE_INSTALL = : -+POST_INSTALL = : -+NORMAL_UNINSTALL = : -+PRE_UNINSTALL = : -+POST_UNINSTALL = : -+bin_PROGRAMS = dfu-util$(EXEEXT) dfu-util_static$(EXEEXT) -+subdir = src -+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -+am__aclocal_m4_deps = $(top_srcdir)/configure.ac -+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -+ $(ACLOCAL_M4) -+mkinstalldirs = $(install_sh) -d -+CONFIG_HEADER = $(top_builddir)/config.h -+CONFIG_CLEAN_FILES = -+am__installdirs = "$(DESTDIR)$(bindir)" -+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -+PROGRAMS = $(bin_PROGRAMS) -+am_dfu_util_OBJECTS = main.$(OBJEXT) sam7dfu.$(OBJEXT) dfu.$(OBJEXT) -+dfu_util_OBJECTS = $(am_dfu_util_OBJECTS) -+dfu_util_LDADD = $(LDADD) -+am_dfu_util_static_OBJECTS = main.$(OBJEXT) sam7dfu.$(OBJEXT) \ -+ dfu.$(OBJEXT) -+dfu_util_static_OBJECTS = $(am_dfu_util_static_OBJECTS) -+dfu_util_static_LDADD = $(LDADD) -+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -+depcomp = $(SHELL) $(top_srcdir)/m4/depcomp -+am__depfiles_maybe = depfiles -+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+CCLD = $(CC) -+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+SOURCES = $(dfu_util_SOURCES) $(dfu_util_static_SOURCES) -+DIST_SOURCES = $(dfu_util_SOURCES) $(dfu_util_static_SOURCES) -+ETAGS = etags -+CTAGS = ctags -+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+ACLOCAL = @ACLOCAL@ -+AMDEP_FALSE = @AMDEP_FALSE@ -+AMDEP_TRUE = @AMDEP_TRUE@ -+AMTAR = @AMTAR@ -+AUTOCONF = @AUTOCONF@ -+AUTOHEADER = @AUTOHEADER@ -+AUTOMAKE = @AUTOMAKE@ -+AWK = @AWK@ -+CC = @CC@ -+CCDEPMODE = @CCDEPMODE@ -+CFLAGS = @CFLAGS@ -+CPP = @CPP@ -+CPPFLAGS = @CPPFLAGS@ -+CYGPATH_W = @CYGPATH_W@ -+DEFS = @DEFS@ -+DEPDIR = @DEPDIR@ -+ECHO_C = @ECHO_C@ -+ECHO_N = @ECHO_N@ -+ECHO_T = @ECHO_T@ -+EGREP = @EGREP@ -+EXEEXT = @EXEEXT@ -+GREP = @GREP@ -+INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_PROGRAM = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ -+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LDFLAGS = @LDFLAGS@ -+LIBOBJS = @LIBOBJS@ -+LIBS = @LIBS@ -+LTLIBOBJS = @LTLIBOBJS@ -+MAINT = @MAINT@ -+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -+MAKEINFO = @MAKEINFO@ -+OBJEXT = @OBJEXT@ -+PACKAGE = @PACKAGE@ -+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -+PACKAGE_NAME = @PACKAGE_NAME@ -+PACKAGE_STRING = @PACKAGE_STRING@ -+PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_VERSION = @PACKAGE_VERSION@ -+PATH_SEPARATOR = @PATH_SEPARATOR@ -+PKG_CONFIG = @PKG_CONFIG@ -+SET_MAKE = @SET_MAKE@ -+SHELL = @SHELL@ -+STRIP = @STRIP@ -+USB_CFLAGS = @USB_CFLAGS@ -+USB_LIBS = @USB_LIBS@ -+VERSION = @VERSION@ -+ac_ct_CC = @ac_ct_CC@ -+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -+am__include = @am__include@ -+am__leading_dot = @am__leading_dot@ -+am__quote = @am__quote@ -+am__tar = @am__tar@ -+am__untar = @am__untar@ -+bindir = @bindir@ -+build_alias = @build_alias@ -+datadir = @datadir@ -+datarootdir = @datarootdir@ -+docdir = @docdir@ -+dvidir = @dvidir@ -+exec_prefix = @exec_prefix@ -+host_alias = @host_alias@ -+htmldir = @htmldir@ -+includedir = @includedir@ -+infodir = @infodir@ -+install_sh = @install_sh@ -+libdir = @libdir@ -+libexecdir = @libexecdir@ -+localedir = @localedir@ -+localstatedir = @localstatedir@ -+mandir = @mandir@ -+mkdir_p = @mkdir_p@ -+oldincludedir = @oldincludedir@ -+pdfdir = @pdfdir@ -+prefix = @prefix@ -+program_transform_name = @program_transform_name@ -+psdir = @psdir@ -+sbindir = @sbindir@ -+sharedstatedir = @sharedstatedir@ -+sysconfdir = @sysconfdir@ -+target_alias = @target_alias@ -+AM_CFLAGS = -Wall -+BUILT_SOURCES = dfu-version.h -+dfu_util_SOURCES = main.c sam7dfu.c dfu.c dfu.h -+dfu_util_static_SOURCES = main.c sam7dfu.c dfu.c dfu.h -+dfu_util_static_LDFLAGS = -static -+all: $(BUILT_SOURCES) -+ $(MAKE) $(AM_MAKEFLAGS) all-am -+ -+.SUFFIXES: -+.SUFFIXES: .c .o .obj -+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -+ @for dep in $?; do \ -+ case '$(am__configure_deps)' in \ -+ *$$dep*) \ -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -+ && exit 0; \ -+ exit 1;; \ -+ esac; \ -+ done; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ -+ cd $(top_srcdir) && \ -+ $(AUTOMAKE) --foreign src/Makefile -+.PRECIOUS: Makefile -+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -+ @case '$?' in \ -+ *config.status*) \ -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -+ *) \ -+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -+ esac; -+ -+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+ -+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+install-binPROGRAMS: $(bin_PROGRAMS) -+ @$(NORMAL_INSTALL) -+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -+ @list='$(bin_PROGRAMS)'; for p in $$list; do \ -+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -+ if test -f $$p \ -+ ; then \ -+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ -+ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -+ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -+ else :; fi; \ -+ done -+ -+uninstall-binPROGRAMS: -+ @$(NORMAL_UNINSTALL) -+ @list='$(bin_PROGRAMS)'; for p in $$list; do \ -+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ -+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -+ rm -f "$(DESTDIR)$(bindir)/$$f"; \ -+ done -+ -+clean-binPROGRAMS: -+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -+dfu-util$(EXEEXT): $(dfu_util_OBJECTS) $(dfu_util_DEPENDENCIES) -+ @rm -f dfu-util$(EXEEXT) -+ $(LINK) $(dfu_util_LDFLAGS) $(dfu_util_OBJECTS) $(dfu_util_LDADD) $(LIBS) -+dfu-util_static$(EXEEXT): $(dfu_util_static_OBJECTS) $(dfu_util_static_DEPENDENCIES) -+ @rm -f dfu-util_static$(EXEEXT) -+ $(LINK) $(dfu_util_static_LDFLAGS) $(dfu_util_static_OBJECTS) $(dfu_util_static_LDADD) $(LIBS) -+ -+mostlyclean-compile: -+ -rm -f *.$(OBJEXT) -+ -+distclean-compile: -+ -rm -f *.tab.c -+ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dfu.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sam7dfu.Po@am__quote@ -+ -+.c.o: -+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c $< -+ -+.c.obj: -+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -+uninstall-info-am: -+ -+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ mkid -fID $$unique -+tags: TAGS -+ -+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ test -n "$$unique" || unique=$$empty_fix; \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$tags $$unique; \ -+ fi -+ctags: CTAGS -+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ tags=; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) ' { files[$$0] = 1; } \ -+ END { for (i in files) print i; }'`; \ -+ test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -+ $$tags $$unique -+ -+GTAGS: -+ here=`$(am__cd) $(top_builddir) && pwd` \ -+ && cd $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) $$here -+ -+distclean-tags: -+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -+ -+distdir: $(DISTFILES) -+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -+ list='$(DISTFILES)'; for file in $$list; do \ -+ case $$file in \ -+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -+ esac; \ -+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -+ dir="/$$dir"; \ -+ $(mkdir_p) "$(distdir)$$dir"; \ -+ else \ -+ dir=''; \ -+ fi; \ -+ if test -d $$d/$$file; then \ -+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ fi; \ -+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ else \ -+ test -f $(distdir)/$$file \ -+ || cp -p $$d/$$file $(distdir)/$$file \ -+ || exit 1; \ -+ fi; \ -+ done -+check-am: all-am -+check: $(BUILT_SOURCES) -+ $(MAKE) $(AM_MAKEFLAGS) check-am -+all-am: Makefile $(PROGRAMS) -+installdirs: -+ for dir in "$(DESTDIR)$(bindir)"; do \ -+ test -z "$$dir" || $(mkdir_p) "$$dir"; \ -+ done -+install: $(BUILT_SOURCES) -+ $(MAKE) $(AM_MAKEFLAGS) install-am -+install-exec: install-exec-am -+install-data: install-data-am -+uninstall: uninstall-am -+ -+install-am: all-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ -+installcheck: installcheck-am -+install-strip: -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ `test -z '$(STRIP)' || \ -+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+mostlyclean-generic: -+ -+clean-generic: -+ -+distclean-generic: -+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -+maintainer-clean-generic: -+ @echo "This command is intended for maintainers to use" -+ @echo "it deletes files that may require special tools to rebuild." -+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -+clean: clean-am -+ -+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am -+ -+distclean: distclean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+distclean-am: clean-am distclean-compile distclean-generic \ -+ distclean-tags -+ -+dvi: dvi-am -+ -+dvi-am: -+ -+html: html-am -+ -+info: info-am -+ -+info-am: -+ -+install-data-am: -+ -+install-exec-am: install-binPROGRAMS -+ -+install-info: install-info-am -+ -+install-man: -+ -+installcheck-am: -+ -+maintainer-clean: maintainer-clean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+maintainer-clean-am: distclean-am maintainer-clean-generic -+ -+mostlyclean: mostlyclean-am -+ -+mostlyclean-am: mostlyclean-compile mostlyclean-generic -+ -+pdf: pdf-am -+ -+pdf-am: -+ -+ps: ps-am -+ -+ps-am: -+ -+uninstall-am: uninstall-binPROGRAMS uninstall-info-am -+ -+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ -+ clean-generic ctags distclean distclean-compile \ -+ distclean-generic distclean-tags distdir dvi dvi-am html \ -+ html-am info info-am install install-am install-binPROGRAMS \ -+ install-data install-data-am install-exec install-exec-am \ -+ install-info install-info-am install-man install-strip \ -+ installcheck installcheck-am installdirs maintainer-clean \ -+ maintainer-clean-generic mostlyclean mostlyclean-compile \ -+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ -+ uninstall-am uninstall-binPROGRAMS uninstall-info-am -+ -+ -+dfu-version.h: -+ echo -e '#ifndef DFU_UTIL_VERSION' \ -+ '\n#define DFU_UTIL_VERSION "'`svnversion`'"' \ -+ '\n#endif' > dfu-version.h -+ -+# commands.c commands.h sam7dfu.c -+# Tell versions [3.59,3.63) of GNU make to not export all variables. -+# Otherwise a system limit (for SysV at least) may be exceeded. -+.NOEXPORT: -diff --git a/tools/dfu-util/src/commands.c b/tools/dfu-util/src/commands.c -new file mode 100644 -index 0000000..e782be6 ---- /dev/null -+++ b/tools/dfu-util/src/commands.c -@@ -0,0 +1,375 @@ -+/* -+ * dfu-programmer -+ * -+ * $Id: commands.c,v 1.6 2006/06/25 00:01:37 schmidtw Exp $ -+ * -+ * This program 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 -+ */ -+ -+#include <stdio.h> -+#include <string.h> -+ -+#include "config.h" -+#include "commands.h" -+#include "arguments.h" -+#include "intel_hex.h" -+#include "atmel.h" -+ -+ -+static int execute_erase( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ int result = 0; -+ -+ if( 2 < debug ) { -+ fprintf( stderr, "%s: erase %d bytes\n", __FUNCTION__, -+ args.memory_size ); -+ } -+ -+ result = atmel_erase_flash( device, interface, ATMEL_ERASE_ALL ); -+ if( 0 != result ) -+ return result; -+ -+ return atmel_blank_check( device, interface, 0, args.top_memory_address ); -+} -+ -+ -+static int execute_flash( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ char *hex_data = NULL; -+ int usage = 0; -+ int retval = -1; -+ int result = 0; -+ char *buffer = NULL; -+ int i; -+ -+ buffer = (char *) malloc( args.memory_size ); -+ if( NULL == buffer ) { -+ fprintf( stderr, "Request for %d bytes of memory failed.\n", -+ args.memory_size ); -+ goto error; -+ } -+ -+ memset( buffer, 0, args.memory_size ); -+ -+ hex_data = intel_hex_to_buffer( args.com_flash_data.file, -+ args.memory_size, 0xff, &usage ); -+ if( NULL == hex_data ) { -+ fprintf( stderr, -+ "Something went wrong with creating the memory image.\n" ); -+ goto error; -+ } -+ -+ if( 2 < debug ) { -+ fprintf( stderr, "%s: write %d/%d bytes\n", __FUNCTION__, -+ usage, args.memory_size ); -+ } -+ -+ result = atmel_flash( device, interface, 0, args.top_memory_address, -+ hex_data ); -+ -+ if( args.memory_size != result ) { -+ fprintf( stderr, "Error while flashing. (%d)\n", result ); -+ goto error; -+ } -+ -+ if( 0 == args.com_flash_data.suppress_validation ) { -+ fprintf( stderr, "Validating...\n" ); -+ -+ result = atmel_read_flash( device, interface, 0, -+ args.top_memory_address, buffer, -+ args.memory_size ); -+ -+ if( args.memory_size != result ) { -+ fprintf( stderr, "Error while validating.\n" ); -+ goto error; -+ } -+ -+ if( 0 != memcmp(hex_data, buffer, args.memory_size) ) { -+ fprintf( stderr, "Image did not validate.\n" ); -+ goto error; -+ } -+ } -+ -+ if( 0 == args.quiet ) { -+ fprintf( stderr, "%d bytes used (%.02f%%)\n", usage, -+ ((float)(usage*100)/(float)(args.top_memory_address)) ); -+ } -+ -+ retval = 0; -+ -+error: -+ if( NULL != buffer ) { -+ free( buffer ); -+ buffer = NULL; -+ } -+ -+ if( NULL != hex_data ) { -+ free( hex_data ); -+ hex_data = NULL; -+ } -+ -+ return retval; -+} -+ -+ -+static int execute_start_app( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ return atmel_start_app( device, interface ); -+} -+ -+ -+static int execute_get( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ struct atmel_device_info info; -+ char *message = NULL; -+ short value = 0; -+ int status; -+ int controller_error = 0; -+ -+ if( device_8051 == args.device_type ) { -+ status = atmel_read_config_8051( device, interface, &info ); -+ } else { -+ status = atmel_read_config_avr( device, interface, &info ); -+ } -+ -+ if( 0 != status ) { -+ fprintf( stderr, "Error reading %s config information.\n", -+ args.device_type_string ); -+ return status; -+ } -+ -+ switch( args.com_get_data.name ) { -+ case get_bootloader: -+ value = info.bootloaderVersion; -+ message = "Bootloader Version"; -+ break; -+ case get_ID1: -+ value = info.bootID1; -+ message = "Device boot ID 1"; -+ break; -+ case get_ID2: -+ value = info.bootID2; -+ message = "Device boot ID 2"; -+ break; -+ case get_BSB: -+ value = info.bsb; -+ message = "Boot Status Byte"; -+ if( device_8051 != args.device_type ) { -+ controller_error = 1; -+ } -+ break; -+ case get_SBV: -+ value = info.sbv; -+ message = "Software Boot Vector"; -+ if( device_8051 != args.device_type ) { -+ controller_error = 1; -+ } -+ break; -+ case get_SSB: -+ value = info.ssb; -+ message = "Software Security Byte"; -+ if( device_8051 != args.device_type ) { -+ controller_error = 1; -+ } -+ break; -+ case get_EB: -+ value = info.eb; -+ message = "Extra Byte"; -+ if( device_8051 != args.device_type ) { -+ controller_error = 1; -+ } -+ break; -+ case get_manufacturer: -+ value = info.manufacturerCode; -+ message = "Manufacturer Code"; -+ break; -+ case get_family: -+ value = info.familyCode; -+ message = "Family Code"; -+ break; -+ case get_product_name: -+ value = info.productName; -+ message = "Product Name"; -+ break; -+ case get_product_rev: -+ value = info.productRevision; -+ message = "Product Revision"; -+ break; -+ case get_HSB: -+ value = info.hsb; -+ message = "Hardware Security Byte"; -+ break; -+ } -+ -+ if( 0 != controller_error ) { -+ fprintf( stderr, "%s requires 8051 based controller\n", -+ message ); -+ return -1; -+ } -+ -+ if( value < 0 ) { -+ fprintf( stderr, "The requested device info is unavailable.\n" ); -+ return -2; -+ } -+ -+ fprintf( stdout, "%s%s0x%02x (%d)\n", -+ ((0 == args.quiet) ? message : ""), -+ ((0 == args.quiet) ? ": " : ""), -+ value, value ); -+ return 0; -+} -+ -+ -+static int execute_dump( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ int i = 0; -+ char *buffer = NULL; -+ -+ buffer = (char *) malloc( (args.memory_size) ); -+ if( NULL == buffer ) { -+ fprintf( stderr, "Request for %d bytes of memory failed.\n", -+ args.memory_size ); -+ goto error; -+ } -+ -+ if( 2 < debug ) { -+ fprintf( stderr, "%s: dump %d bytes\n", __FUNCTION__, -+ args.memory_size ); -+ } -+ -+ if( args.memory_size != atmel_read_flash(device, interface, 0, -+ args.top_memory_address, buffer, -+ args.memory_size) ) -+ { -+ fprintf( stderr, "Error while validating.\n" ); -+ return -1; -+ } -+ -+ for( i = 0; i < args.memory_size; i++ ) { -+ fprintf( stdout, "%c", buffer[i] ); -+ } -+ -+ fflush( stdout ); -+ -+error: -+ if( NULL != buffer ) { -+ free( buffer ); -+ buffer = NULL; -+ } -+ -+ return 0; -+} -+ -+ -+static int execute_configure( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ int value = args.com_configure_data.value; -+ int name = args.com_configure_data.name; -+ -+ if( device_8051 != args.device_type ) { -+ fprintf( stderr, "target doesn't support configure operation.\n" ); -+ return -1; -+ } -+ -+ if( (0xff & value) != value ) { -+ fprintf( stderr, "Value to configure must be in range 0-255.\n" ); -+ return -1; -+ } -+ -+ if( 0 != atmel_set_config(device, interface, name, value) ) -+ { -+ fprintf( stderr, "Configuration set failed.\n" ); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+ -+static int execute_dnload( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ if( device_SAM7 != args.device_type || device_NEO1973 != args.device_type) { -+ fprintf( stderr, "target doesn't support dfu download operation.\n" ); -+ return -1; -+ } -+ -+ if ( 0 > sam7dfu_do_dnloa(device, interface, 256, /* FIXME */ -+ args.com_flash_data.file) ) -+ { -+ fprintf( stderr, "Download failed.\n" ); -+ return -1; -+ } -+} -+ -+ -+static int execute_upload( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ if( device_SAM7 != args.device_type || device_NEO1973 != args.device_type) { -+ fprintf( stderr, "target doesn't support dfu upload operation.\n" ); -+ return -1; -+ } -+ -+ if ( 0 > sam7dfu_do_upload(device, interface, 256, /* FIXME */ -+ args.com_flash_data.file) ) -+ { -+ fprintf( stderr, "Download failed.\n" ); -+ return -1; -+ } -+} -+ -+ -+int execute_command( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ) -+{ -+ switch( args.command ) { -+ case com_erase: -+ return execute_erase( device, interface, args ); -+ case com_flash: -+ return execute_flash( device, interface, args ); -+ case com_start_app: -+ return execute_start_app( device, interface, args ); -+ case com_get: -+ return execute_get( device, interface, args ); -+ case com_dump: -+ return execute_dump( device, interface, args ); -+ case com_configure: -+ return execute_configure( device, interface, args ); -+ case com_dnload: -+ return execute_dnload( device, interface, args ); -+ case com_upload: -+ return execute_upload( device, interface, args ); -+ default: -+ fprintf( stderr, "Not supported at this time.\n" ); -+ } -+ -+ return -1; -+} -diff --git a/tools/dfu-util/src/commands.h b/tools/dfu-util/src/commands.h -new file mode 100644 -index 0000000..1d156e3 ---- /dev/null -+++ b/tools/dfu-util/src/commands.h -@@ -0,0 +1,30 @@ -+/* -+ * dfu-programmer -+ * -+ * $Id: commands.h,v 1.2 2005/09/25 01:27:42 schmidtw Exp $ -+ * -+ * This program 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 -+ */ -+ -+#ifndef __COMMANDS_H__ -+#define __COMMANDS_H__ -+ -+#include <usb.h> -+#include "arguments.h" -+ -+int execute_command( struct usb_dev_handle *device, -+ int interface, -+ struct programmer_arguments args ); -+#endif -diff --git a/tools/dfu-util/src/dfu.c b/tools/dfu-util/src/dfu.c -new file mode 100644 -index 0000000..c0b4f2b ---- /dev/null -+++ b/tools/dfu-util/src/dfu.c -@@ -0,0 +1,420 @@ -+/* -+ * dfu-programmer -+ * -+ * $Id: dfu.c,v 1.3 2006/06/20 06:28:04 schmidtw Exp $ -+ * -+ * This program 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 -+ */ -+ -+#include <stdio.h> -+#include <usb.h> -+#include "dfu.h" -+ -+/* DFU commands */ -+#define DFU_DETACH 0 -+#define DFU_DNLOAD 1 -+#define DFU_UPLOAD 2 -+#define DFU_GETSTATUS 3 -+#define DFU_CLRSTATUS 4 -+#define DFU_GETSTATE 5 -+#define DFU_ABORT 6 -+ -+#define INVALID_DFU_TIMEOUT -1 -+ -+static int dfu_timeout = INVALID_DFU_TIMEOUT; -+static unsigned short transaction = 0; -+ -+static int dfu_debug_level = 0; -+ -+void dfu_init( const int timeout ) -+{ -+ if( timeout > 0 ) { -+ dfu_timeout = timeout; -+ } else { -+ if( 0 != dfu_debug_level ) -+ fprintf( stderr, "dfu_init: Invalid timeout value.\n" ); -+ } -+} -+ -+static int dfu_verify_init( const char *function ) -+{ -+ if( INVALID_DFU_TIMEOUT == dfu_timeout ) { -+ if( 0 != dfu_debug_level ) -+ fprintf( stderr, -+ "%s: dfu system not property initialized.\n", -+ function ); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+void dfu_debug( const int level ) -+{ -+ dfu_debug_level = level; -+} -+ -+ -+/* -+ * DFU_DETACH Request (DFU Spec 1.0, Section 5.1) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * timeout - the timeout in ms the USB device should wait for a pending -+ * USB reset before giving up and terminating the operation -+ * -+ * returns 0 or < 0 on error -+ */ -+int dfu_detach( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short timeout ) -+{ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ return usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_DETACH, -+ /* wValue */ timeout, -+ /* wIndex */ interface, -+ /* Data */ NULL, -+ /* wLength */ 0, -+ dfu_timeout ); -+} -+ -+ -+/* -+ * DFU_DNLOAD Request (DFU Spec 1.0, Section 6.1.1) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * length - the total number of bytes to transfer to the USB -+ * device - must be less than wTransferSize -+ * data - the data to transfer -+ * -+ * returns the number of bytes written or < 0 on error -+ */ -+int dfu_download( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short length, -+ char* data ) -+{ -+ int status; -+ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ /* Sanity checks */ -+ if( (0 != length) && (NULL == data) ) { -+ if( 0 != dfu_debug_level ) -+ fprintf( stderr, -+ "%s: data was NULL, but length != 0\n", -+ __FUNCTION__ ); -+ return -1; -+ } -+ -+ if( (0 == length) && (NULL != data) ) { -+ if( 0 != dfu_debug_level ) -+ fprintf( stderr, -+ "%s: data was not NULL, but length == 0\n", -+ __FUNCTION__ ); -+ return -2; -+ } -+ -+ status = usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_DNLOAD, -+ /* wValue */ transaction++, -+ /* wIndex */ interface, -+ /* Data */ data, -+ /* wLength */ length, -+ dfu_timeout ); -+ if( status < 0 ) { -+ fprintf( stderr, "%s error %d\n", __FUNCTION__, status ); -+ } -+ -+ return status; -+} -+ -+ -+/* -+ * DFU_UPLOAD Request (DFU Spec 1.0, Section 6.2) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * length - the maximum number of bytes to receive from the USB -+ * device - must be less than wTransferSize -+ * data - the buffer to put the received data in -+ * -+ * returns the number of bytes received or < 0 on error -+ */ -+int dfu_upload( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short length, -+ char* data ) -+{ -+ int status; -+ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ /* Sanity checks */ -+ if( (0 == length) || (NULL == data) ) { -+ if( 0 != dfu_debug_level ) -+ fprintf( stderr, -+ "%s: data was NULL, or length is 0\n", -+ __FUNCTION__ ); -+ return -1; -+ } -+ -+ status = usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_UPLOAD, -+ /* wValue */ transaction++, -+ /* wIndex */ interface, -+ /* Data */ data, -+ /* wLength */ length, -+ dfu_timeout ); -+ if( status < 0 ) { -+ fprintf( stderr, "%s error %d\n", __FUNCTION__, status ); -+ } -+ -+ return status; -+} -+ -+ -+/* -+ * DFU_GETSTATUS Request (DFU Spec 1.0, Section 6.1.2) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * status - the data structure to be populated with the results -+ * -+ * return the number of bytes read in or < 0 on an error -+ */ -+int dfu_get_status( struct usb_dev_handle *device, -+ const unsigned short interface, -+ struct dfu_status *status ) -+{ -+ char buffer[6]; -+ int result; -+ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ /* Initialize the status data structure */ -+ status->bStatus = DFU_STATUS_ERROR_UNKNOWN; -+ status->bwPollTimeout = 0; -+ status->bState = STATE_DFU_ERROR; -+ status->iString = 0; -+ -+ result = usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_GETSTATUS, -+ /* wValue */ 0, -+ /* wIndex */ interface, -+ /* Data */ buffer, -+ /* wLength */ 6, -+ dfu_timeout ); -+ -+ if( 6 == result ) { -+ status->bStatus = buffer[0]; -+ status->bwPollTimeout = ((0xff & buffer[3]) << 16) | -+ ((0xff & buffer[2]) << 8) | -+ (0xff & buffer[1]); -+ -+ status->bState = buffer[4]; -+ status->iString = buffer[5]; -+ } -+ -+ return result; -+} -+ -+ -+/* -+ * DFU_CLRSTATUS Request (DFU Spec 1.0, Section 6.1.3) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * -+ * return 0 or < 0 on an error -+ */ -+int dfu_clear_status( struct usb_dev_handle *device, -+ const unsigned short interface ) -+{ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ return usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_OUT| USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_CLRSTATUS, -+ /* wValue */ 0, -+ /* wIndex */ interface, -+ /* Data */ NULL, -+ /* wLength */ 0, -+ dfu_timeout ); -+} -+ -+ -+/* -+ * DFU_GETSTATE Request (DFU Spec 1.0, Section 6.1.5) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * length - the maximum number of bytes to receive from the USB -+ * device - must be less than wTransferSize -+ * data - the buffer to put the received data in -+ * -+ * returns the state or < 0 on error -+ */ -+int dfu_get_state( struct usb_dev_handle *device, -+ const unsigned short interface ) -+{ -+ int result; -+ char buffer[1]; -+ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ result = usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_GETSTATE, -+ /* wValue */ 0, -+ /* wIndex */ interface, -+ /* Data */ buffer, -+ /* wLength */ 1, -+ dfu_timeout ); -+ -+ /* Return the error if there is one. */ -+ if( result < 1 ) { -+ return result; -+ } -+ -+ /* Return the state. */ -+ return buffer[0]; -+} -+ -+ -+/* -+ * DFU_ABORT Request (DFU Spec 1.0, Section 6.1.4) -+ * -+ * device - the usb_dev_handle to communicate with -+ * interface - the interface to communicate with -+ * -+ * returns 0 or < 0 on an error -+ */ -+int dfu_abort( struct usb_dev_handle *device, -+ const unsigned short interface ) -+{ -+ if( 0 != dfu_verify_init(__FUNCTION__) ) -+ return -1; -+ -+ return usb_control_msg( device, -+ /* bmRequestType */ USB_ENDPOINT_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, -+ /* bRequest */ DFU_ABORT, -+ /* wValue */ 0, -+ /* wIndex */ interface, -+ /* Data */ NULL, -+ /* wLength */ 0, -+ dfu_timeout ); -+} -+ -+ -+char* dfu_state_to_string( int state ) -+{ -+ char *message = NULL; -+ -+ switch( state ) { -+ case STATE_APP_IDLE: -+ message = "appIDLE"; -+ break; -+ case STATE_APP_DETACH: -+ message = "appDETACH"; -+ break; -+ case STATE_DFU_IDLE: -+ message = "dfuIDLE"; -+ break; -+ case STATE_DFU_DOWNLOAD_SYNC: -+ message = "dfuDNLOAD-SYNC"; -+ break; -+ case STATE_DFU_DOWNLOAD_BUSY: -+ message = "dfuDNBUSY"; -+ break; -+ case STATE_DFU_DOWNLOAD_IDLE: -+ message = "dfuDNLOAD-IDLE"; -+ break; -+ case STATE_DFU_MANIFEST_SYNC: -+ message = "dfuMANIFEST-SYNC"; -+ break; -+ case STATE_DFU_MANIFEST: -+ message = "dfuMANIFEST"; -+ break; -+ case STATE_DFU_MANIFEST_WAIT_RESET: -+ message = "dfuMANIFEST-WAIT-RESET"; -+ break; -+ case STATE_DFU_UPLOAD_IDLE: -+ message = "dfuUPLOAD-IDLE"; -+ break; -+ case STATE_DFU_ERROR: -+ message = "dfuERROR"; -+ break; -+ } -+ -+ return message; -+} -+ -+/* Chapter 6.1.2 */ -+static const char *dfu_status_names[] = { -+ [DFU_STATUS_OK] = "No error condition is present", -+ [DFU_STATUS_errTARGET] = -+ "File is not targeted for use by this device", -+ [DFU_STATUS_errFILE] = -+ "File is for this device but fails some vendor-specific test", -+ [DFU_STATUS_errWRITE] = -+ "Device is unable to write memory", -+ [DFU_STATUS_errERASE] = -+ "Memory erase function failed", -+ [DFU_STATUS_errCHECK_ERASED] = -+ "Memory erase check failed", -+ [DFU_STATUS_errPROG] = -+ "Program memory function failed", -+ [DFU_STATUS_errVERIFY] = -+ "Programmed emmory failed verification", -+ [DFU_STATUS_errADDRESS] = -+ "Cannot program memory due to received address that is out of range", -+ [DFU_STATUS_errNOTDONE] = -+ "Received DFU_DNLOAD with wLength = 0, but device does not think that it has all data yet", -+ [DFU_STATUS_errFIRMWARE] = -+ "Device's firmware is corrupt. It cannot return to run-time (non-DFU) operations", -+ [DFU_STATUS_errVENDOR] = -+ "iString indicates a vendor specific error", -+ [DFU_STATUS_errUSBR] = -+ "Device detected unexpected USB reset signalling", -+ [DFU_STATUS_errPOR] = -+ "Device detected unexpected power on reset", -+ [DFU_STATUS_errUNKNOWN] = -+ "Something went wrong, but the device does not know what it was", -+ [DFU_STATUS_errSTALLEDPKT] = -+ "Device stalled an unexpected request", -+}; -+ -+ -+const char *dfu_status_to_string(int status) -+{ -+ if (status > DFU_STATUS_errSTALLEDPKT) -+ return "INVALID"; -+ return dfu_status_names[status]; -+} -+ -diff --git a/tools/dfu-util/src/dfu.h b/tools/dfu-util/src/dfu.h -new file mode 100644 -index 0000000..cd4b06c ---- /dev/null -+++ b/tools/dfu-util/src/dfu.h -@@ -0,0 +1,103 @@ -+/* -+ * dfu-programmer -+ * -+ * $Id: dfu.h,v 1.2 2005/09/25 01:27:42 schmidtw Exp $ -+ * -+ * This program 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 -+ */ -+ -+#ifndef __DFU_H__ -+#define __DFU_H__ -+ -+#include <usb.h> -+#include "usb_dfu.h" -+ -+/* DFU states */ -+#define STATE_APP_IDLE 0x00 -+#define STATE_APP_DETACH 0x01 -+#define STATE_DFU_IDLE 0x02 -+#define STATE_DFU_DOWNLOAD_SYNC 0x03 -+#define STATE_DFU_DOWNLOAD_BUSY 0x04 -+#define STATE_DFU_DOWNLOAD_IDLE 0x05 -+#define STATE_DFU_MANIFEST_SYNC 0x06 -+#define STATE_DFU_MANIFEST 0x07 -+#define STATE_DFU_MANIFEST_WAIT_RESET 0x08 -+#define STATE_DFU_UPLOAD_IDLE 0x09 -+#define STATE_DFU_ERROR 0x0a -+ -+ -+/* DFU status */ -+#define DFU_STATUS_OK 0x00 -+#define DFU_STATUS_ERROR_TARGET 0x01 -+#define DFU_STATUS_ERROR_FILE 0x02 -+#define DFU_STATUS_ERROR_WRITE 0x03 -+#define DFU_STATUS_ERROR_ERASE 0x04 -+#define DFU_STATUS_ERROR_CHECK_ERASED 0x05 -+#define DFU_STATUS_ERROR_PROG 0x06 -+#define DFU_STATUS_ERROR_VERIFY 0x07 -+#define DFU_STATUS_ERROR_ADDRESS 0x08 -+#define DFU_STATUS_ERROR_NOTDONE 0x09 -+#define DFU_STATUS_ERROR_FIRMWARE 0x0a -+#define DFU_STATUS_ERROR_VENDOR 0x0b -+#define DFU_STATUS_ERROR_USBR 0x0c -+#define DFU_STATUS_ERROR_POR 0x0d -+#define DFU_STATUS_ERROR_UNKNOWN 0x0e -+#define DFU_STATUS_ERROR_STALLEDPKT 0x0f -+ -+ -+/* This is based off of DFU_GETSTATUS -+ * -+ * 1 unsigned byte bStatus -+ * 3 unsigned byte bwPollTimeout -+ * 1 unsigned byte bState -+ * 1 unsigned byte iString -+*/ -+ -+struct dfu_status { -+ unsigned char bStatus; -+ unsigned int bwPollTimeout; -+ unsigned char bState; -+ unsigned char iString; -+}; -+ -+void dfu_init( const int timeout ); -+void dfu_debug( const int level ); -+int dfu_detach( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short timeout ); -+int dfu_download( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short length, -+ char* data ); -+int dfu_upload( struct usb_dev_handle *device, -+ const unsigned short interface, -+ const unsigned short length, -+ char* data ); -+int dfu_get_status( struct usb_dev_handle *device, -+ const unsigned short interface, -+ struct dfu_status *status ); -+int dfu_clear_status( struct usb_dev_handle *device, -+ const unsigned short interface ); -+int dfu_get_state( struct usb_dev_handle *device, -+ const unsigned short interface ); -+int dfu_abort( struct usb_dev_handle *device, -+ const unsigned short interface ); -+ -+char* dfu_state_to_string( int state ); -+ -+const char *dfu_status_to_string(int status); -+ -+int debug; -+#endif -diff --git a/tools/dfu-util/src/index.html b/tools/dfu-util/src/index.html -new file mode 100644 -index 0000000..850ccb6 ---- /dev/null -+++ b/tools/dfu-util/src/index.html -@@ -0,0 +1,17 @@ -+<html><head><title>Revision 3573: /trunk/src/host/dfu-util/src</title></head> -+<body> -+ <h2>Revision 3573: /trunk/src/host/dfu-util/src</h2> -+ <ul> -+ <li><a href="../">..</a></li> -+ <li><a href="Makefile.am">Makefile.am</a></li> -+ <li><a href="commands.c">commands.c</a></li> -+ <li><a href="commands.h">commands.h</a></li> -+ <li><a href="dfu.c">dfu.c</a></li> -+ <li><a href="dfu.h">dfu.h</a></li> -+ <li><a href="main.c">main.c</a></li> -+ <li><a href="sam7dfu.c">sam7dfu.c</a></li> -+ <li><a href="sam7dfu.h">sam7dfu.h</a></li> -+ <li><a href="usb_dfu.h">usb_dfu.h</a></li> -+ </ul> -+ <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.1.4 (r13838).</em> -+</body></html> -\ No newline at end of file -diff --git a/tools/dfu-util/src/main.c b/tools/dfu-util/src/main.c -new file mode 100644 -index 0000000..86591fe ---- /dev/null -+++ b/tools/dfu-util/src/main.c -@@ -0,0 +1,812 @@ -+/* -+ * dfu-util -+ * -+ * (C) 2007 by OpenMoko, Inc. -+ * Written by Harald Welte <laforge@openmoko.org> -+ * -+ * Based on existing code of dfu-programmer-0.4 -+ * -+ * This program 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 -+ */ -+ -+#include <stdio.h> -+#include <string.h> -+#include <getopt.h> -+#include <usb.h> -+#include <errno.h> -+#include <byteswap.h> -+#include <endian.h> -+ -+#include "dfu.h" -+#include "usb_dfu.h" -+#include "sam7dfu.h" -+#include "dfu-version.h" -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#ifdef HAVE_USBPATH_H -+#include <usbpath.h> -+#endif -+ -+ -+int debug; -+static int verbose = 0; -+ -+#define DFU_IFF_DFU 0x0001 /* DFU Mode, (not Runtime) */ -+#define DFU_IFF_VENDOR 0x0100 -+#define DFU_IFF_PRODUCT 0x0200 -+#define DFU_IFF_CONFIG 0x0400 -+#define DFU_IFF_IFACE 0x0800 -+#define DFU_IFF_ALT 0x1000 -+#define DFU_IFF_DEVNUM 0x2000 -+#define DFU_IFF_PATH 0x4000 -+ -+struct usb_vendprod { -+ u_int16_t vendor; -+ u_int16_t product; -+}; -+ -+struct dfu_if { -+ u_int16_t vendor; -+ u_int16_t product; -+ u_int8_t configuration; -+ u_int8_t interface; -+ u_int8_t altsetting; -+ int bus; -+ u_int8_t devnum; -+ const char *path; -+ unsigned int flags; -+ struct usb_device *dev; -+ -+ struct usb_dev_handle *dev_handle; -+}; -+ -+static int _get_first_cb(struct dfu_if *dif, void *v) -+{ -+ struct dfu_if *v_dif = v; -+ -+ memcpy(v_dif, dif, sizeof(*v_dif)-sizeof(struct usb_dev_handle *)); -+ -+ /* return a value that makes find_dfu_if return immediately */ -+ return 1; -+} -+ -+/* Find a DFU interface (and altsetting) in a given device */ -+static int find_dfu_if(struct usb_device *dev, int (*handler)(struct dfu_if *, void *), void *v) -+{ -+ struct usb_config_descriptor *cfg; -+ struct usb_interface_descriptor *intf; -+ struct usb_interface *uif; -+ struct dfu_if _dif, *dfu_if = &_dif; -+ int cfg_idx, intf_idx, alt_idx; -+ int rc; -+ -+ memset(dfu_if, 0, sizeof(*dfu_if)); -+ -+ for (cfg_idx = 0; cfg_idx < dev->descriptor.bNumConfigurations; -+ cfg_idx++) { -+ cfg = &dev->config[cfg_idx]; -+ /* in some cases, noticably FreeBSD if uid != 0, -+ * the configuration descriptors are empty */ -+ if (!cfg) -+ return 0; -+ for (intf_idx = 0; intf_idx < cfg->bNumInterfaces; -+ intf_idx++) { -+ uif = &cfg->interface[intf_idx]; -+ if (!uif) -+ return 0; -+ for (alt_idx = 0; -+ alt_idx < uif->num_altsetting; alt_idx++) { -+ intf = &uif->altsetting[alt_idx]; -+ if (!intf) -+ return 0; -+ if (intf->bInterfaceClass == 0xfe && -+ intf->bInterfaceSubClass == 1) { -+ dfu_if->dev = dev; -+ dfu_if->vendor = -+ dev->descriptor.idVendor; -+ dfu_if->product = -+ dev->descriptor.idProduct; -+ dfu_if->configuration = cfg_idx; -+ dfu_if->interface = -+ intf->bInterfaceNumber; -+ dfu_if->altsetting = -+ intf->bAlternateSetting; -+ if (intf->bInterfaceProtocol == 2) -+ dfu_if->flags |= -+ DFU_IFF_DFU; -+ else -+ dfu_if->flags &= -+ ~DFU_IFF_DFU; -+ if (!handler) -+ return 1; -+ rc = handler(dfu_if, v); -+ if (rc != 0) -+ return rc; -+ } -+ } -+ } -+ } -+ -+ return 0; -+} -+ -+static int get_first_dfu_if(struct dfu_if *dif) -+{ -+ return find_dfu_if(dif->dev, &_get_first_cb, (void *) dif); -+} -+ -+#define MAX_STR_LEN 64 -+ -+static int print_dfu_if(struct dfu_if *dfu_if, void *v) -+{ -+ struct usb_device *dev = dfu_if->dev; -+ int if_name_str_idx; -+ char name[MAX_STR_LEN+1] = "UNDEFINED"; -+ -+ if_name_str_idx = dev->config[dfu_if->configuration].interface[dfu_if->interface].altsetting[dfu_if->altsetting].iInterface; -+ if (if_name_str_idx) { -+ if (!dfu_if->dev_handle) -+ dfu_if->dev_handle = usb_open(dfu_if->dev); -+ if (dfu_if->dev_handle) -+ usb_get_string_simple(dfu_if->dev_handle, if_name_str_idx, name, MAX_STR_LEN); -+ } -+ -+ printf("Found %s: [0x%04x:0x%04x] devnum=%u, cfg=%u, intf=%u, alt=%u, name=\"%s\"\n", -+ dfu_if->flags & DFU_IFF_DFU ? "DFU" : "Runtime", -+ dev->descriptor.idVendor, dev->descriptor.idProduct, -+ dev->devnum, dfu_if->configuration, dfu_if->interface, -+ dfu_if->altsetting, name); -+ -+ return 0; -+} -+ -+static int alt_by_name(struct dfu_if *dfu_if, void *v) -+{ -+ struct usb_device *dev = dfu_if->dev; -+ int if_name_str_idx; -+ char name[MAX_STR_LEN+1] = "UNDEFINED"; -+ -+ if_name_str_idx = -+ dev->config[dfu_if->configuration].interface[dfu_if->interface]. -+ altsetting[dfu_if->altsetting].iInterface; -+ if (!if_name_str_idx) -+ return 0; -+ if (!dfu_if->dev_handle) -+ dfu_if->dev_handle = usb_open(dfu_if->dev); -+ if (!dfu_if->dev_handle) -+ return 0; -+ if (usb_get_string_simple(dfu_if->dev_handle, if_name_str_idx, name, -+ MAX_STR_LEN) < 0) -+ return 0; /* should we return an error here ? */ -+ if (strcmp(name, v)) -+ return 0; -+ /* -+ * Return altsetting+1 so that we can use return value 0 to indicate -+ * "not found". -+ */ -+ return dfu_if->altsetting+1; -+} -+ -+static int _count_cb(struct dfu_if *dif, void *v) -+{ -+ int *count = v; -+ -+ (*count)++; -+ -+ return 0; -+} -+ -+/* Count DFU interfaces within a single device */ -+static int count_dfu_interfaces(struct usb_device *dev) -+{ -+ int num_found = 0; -+ -+ find_dfu_if(dev, &_count_cb, (void *) &num_found); -+ -+ return num_found; -+} -+ -+ -+/* Iterate over all matching DFU capable devices within system */ -+static int iterate_dfu_devices(struct dfu_if *dif, -+ int (*action)(struct usb_device *dev, void *user), void *user) -+{ -+ struct usb_bus *usb_bus; -+ struct usb_device *dev; -+ -+ /* Walk the tree and find our device. */ -+ for (usb_bus = usb_get_busses(); NULL != usb_bus; -+ usb_bus = usb_bus->next) { -+ for (dev = usb_bus->devices; NULL != dev; dev = dev->next) { -+ int retval; -+ -+ if (dif && (dif->flags & -+ (DFU_IFF_VENDOR|DFU_IFF_PRODUCT)) && -+ (dev->descriptor.idVendor != dif->vendor || -+ dev->descriptor.idProduct != dif->product)) -+ continue; -+ if (dif && (dif->flags & DFU_IFF_DEVNUM) && -+ (atoi(usb_bus->dirname) != dif->bus || -+ dev->devnum != dif->devnum)) -+ continue; -+ if (!count_dfu_interfaces(dev)) -+ continue; -+ -+ retval = action(dev, user); -+ if (retval) -+ return retval; -+ } -+ } -+ return 0; -+} -+ -+ -+static int found_dfu_device(struct usb_device *dev, void *user) -+{ -+ struct dfu_if *dif = user; -+ -+ dif->dev = dev; -+ return 1; -+} -+ -+ -+/* Find the first DFU-capable device, save it in dfu_if->dev */ -+static int get_first_dfu_device(struct dfu_if *dif) -+{ -+ return iterate_dfu_devices(dif, found_dfu_device, dif); -+} -+ -+ -+static int count_one_dfu_device(struct usb_device *dev, void *user) -+{ -+ int *num = user; -+ -+ (*num)++; -+ return 0; -+} -+ -+ -+/* Count DFU capable devices within system */ -+static int count_dfu_devices(struct dfu_if *dif) -+{ -+ int num_found = 0; -+ -+ iterate_dfu_devices(dif, count_one_dfu_device, &num_found); -+ return num_found; -+} -+ -+ -+static int list_dfu_interfaces(void) -+{ -+ struct usb_bus *usb_bus; -+ struct usb_device *dev; -+ -+ /* Walk the tree and find our device. */ -+ for (usb_bus = usb_get_busses(); NULL != usb_bus; -+ usb_bus = usb_bus->next ) { -+ for (dev = usb_bus->devices; NULL != dev; dev = dev->next) { -+ find_dfu_if(dev, &print_dfu_if, NULL); -+ } -+ } -+ return 0; -+} -+ -+static int parse_vendprod(struct usb_vendprod *vp, const char *str) -+{ -+ unsigned long vend, prod; -+ const char *colon; -+ -+ colon = strchr(str, ':'); -+ if (!colon || strlen(colon) < 2) -+ return -EINVAL; -+ -+ vend = strtoul(str, NULL, 16); -+ prod = strtoul(colon+1, NULL, 16); -+ -+ if (vend > 0xffff || prod > 0xffff) -+ return -EINVAL; -+ -+ vp->vendor = vend; -+ vp->product = prod; -+ -+ return 0; -+} -+ -+ -+#ifdef HAVE_USBPATH_H -+ -+static int resolve_device_path(struct dfu_if *dif) -+{ -+ int res; -+ -+ res = usb_path2devnum(dif->path); -+ if (res < 0) -+ return -EINVAL; -+ if (!res) -+ return 0; -+ -+ dif->bus = atoi(dif->path); -+ dif->devnum = res; -+ dif->flags |= DFU_IFF_DEVNUM; -+ return res; -+} -+ -+#else /* HAVE_USBPATH_H */ -+ -+static int resolve_device_path(struct dfu_if *dif) -+{ -+ fprintf(stderr, -+ "USB device paths are not supported by this dfu-util.\n"); -+ exit(1); -+} -+ -+#endif /* !HAVE_USBPATH_H */ -+ -+ -+static void help(void) -+{ -+ printf("Usage: dfu-util [options] ...\n" -+ " -h --help\t\t\tPrint this help message\n" -+ " -V --version\t\t\tPrint the version number\n" -+ " -l --list\t\t\tList the currently attached DFU capable USB devices\n" -+ " -d --device vendor:product\tSpecify Vendor/Product ID of DFU device\n" -+ " -p --path bus-port. ... .port\tSpecify path to DFU device\n" -+ " -c --cfg config_nr\t\tSpecify the Configuration of DFU device\n" -+ " -i --intf intf_nr\t\tSpecify the DFU Interface number\n" -+ " -a --alt alt\t\t\tSpecify the Altsetting of the DFU Interface\n" -+ "\t\t\t\tby name or by number\n" -+ " -t --transfer-size\t\tSpecify the number of bytes per USB Transfer\n" -+ " -U --upload file\t\tRead firmware from device into <file>\n" -+ " -D --download file\t\tWrite firmware from <file> into device\n" -+ " -R --reset\t\t\tIssue USB Reset signalling once we're finished\n" -+ ); -+} -+ -+static void print_version(void) -+{ -+ printf("dfu-util version %s\n", VERSION "+svn" DFU_UTIL_VERSION); -+} -+ -+static struct option opts[] = { -+ { "help", 0, 0, 'h' }, -+ { "version", 0, 0, 'V' }, -+ { "verbose", 0, 0, 'v' }, -+ { "list", 0, 0, 'l' }, -+ { "device", 1, 0, 'd' }, -+ { "path", 1, 0, 'p' }, -+ { "configuration", 1, 0, 'c' }, -+ { "cfg", 1, 0, 'c' }, -+ { "interface", 1, 0, 'i' }, -+ { "intf", 1, 0, 'i' }, -+ { "altsetting", 1, 0, 'a' }, -+ { "alt", 1, 0, 'a' }, -+ { "transfer-size", 1, 0, 't' }, -+ { "upload", 1, 0, 'U' }, -+ { "download", 1, 0, 'D' }, -+ { "reset", 0, 0, 'R' }, -+}; -+ -+enum mode { -+ MODE_NONE, -+ MODE_UPLOAD, -+ MODE_DOWNLOAD, -+}; -+ -+int main(int argc, char **argv) -+{ -+ struct usb_vendprod vendprod; -+ struct dfu_if _rt_dif, _dif, *dif = &_dif; -+ int num_devs; -+ int num_ifs; -+ unsigned int transfer_size = 0; -+ enum mode mode = MODE_NONE; -+ struct dfu_status status; -+ struct usb_dfu_func_descriptor func_dfu; -+ char *filename = NULL; -+ char *alt_name = NULL; /* query alt name if non-NULL */ -+ char *end; -+ int final_reset = 0; -+ int page_size = getpagesize(); -+ int ret; -+ -+ printf("dfu-util - (C) 2007 by OpenMoko Inc.\n" -+ "This program is Free Software and has ABSOLUTELY NO WARRANTY\n\n"); -+ -+ memset(dif, 0, sizeof(*dif)); -+ -+ usb_init(); -+ //usb_set_debug(255); -+ usb_find_busses(); -+ usb_find_devices(); -+ -+ while (1) { -+ int c, option_index = 0; -+ c = getopt_long(argc, argv, "hVvld:p:c:i:a:t:U:D:R", opts, &option_index); -+ if (c == -1) -+ break; -+ -+ switch (c) { -+ case 'h': -+ help(); -+ exit(0); -+ break; -+ case 'V': -+ print_version(); -+ exit(0); -+ break; -+ case 'v': -+ verbose = 1; -+ break; -+ case 'l': -+ list_dfu_interfaces(); -+ exit(0); -+ break; -+ case 'd': -+ /* Parse device */ -+ if (parse_vendprod(&vendprod, optarg) < 0) { -+ fprintf(stderr, "unable to parse `%s'\n", optarg); -+ exit(2); -+ } -+ dif->vendor = vendprod.vendor; -+ dif->product = vendprod.product; -+ dif->flags |= (DFU_IFF_VENDOR | DFU_IFF_PRODUCT); -+ break; -+ case 'p': -+ /* Parse device path */ -+ dif->path = optarg; -+ dif->flags |= DFU_IFF_PATH; -+ ret = resolve_device_path(dif); -+ if (ret < 0) { -+ fprintf(stderr, "unable to parse `%s'\n", -+ optarg); -+ exit(2); -+ } -+ if (!ret) { -+ fprintf(stderr, "cannot find `%s'\n", optarg); -+ exit(1); -+ } -+ break; -+ case 'c': -+ /* Configuration */ -+ dif->configuration = atoi(optarg); -+ dif->flags |= DFU_IFF_CONFIG; -+ break; -+ case 'i': -+ /* Interface */ -+ dif->interface = atoi(optarg); -+ dif->flags |= DFU_IFF_IFACE; -+ break; -+ case 'a': -+ /* Interface Alternate Setting */ -+ dif->altsetting = strtoul(optarg, &end, 0); -+ if (*end) -+ alt_name = optarg; -+ dif->flags |= DFU_IFF_ALT; -+ break; -+ case 't': -+ transfer_size = atoi(optarg); -+ break; -+ case 'U': -+ mode = MODE_UPLOAD; -+ filename = optarg; -+ break; -+ case 'D': -+ mode = MODE_DOWNLOAD; -+ filename = optarg; -+ break; -+ case 'R': -+ final_reset = 1; -+ break; -+ default: -+ help(); -+ exit(2); -+ } -+ } -+ -+ if (mode == MODE_NONE) { -+ fprintf(stderr, "You need to specify one of -D or -U\n"); -+ help(); -+ exit(2); -+ } -+ -+ if (!filename) { -+ fprintf(stderr, "You need to specify a filename to -D -r -U\n"); -+ help(); -+ exit(2); -+ } -+ -+ dfu_init(5000); -+ -+ num_devs = count_dfu_devices(dif); -+ if (num_devs == 0) { -+ fprintf(stderr, "No DFU capable USB device found\n"); -+ exit(1); -+ } else if (num_devs > 1) { -+ /* We cannot safely support more than one DFU capable device -+ * with same vendor/product ID, since during DFU we need to do -+ * a USB bus reset, after which the target device will get a -+ * new address */ -+ fprintf(stderr, "More than one DFU capable USB device found, " -+ "you might try `--list' and then disconnect all but one " -+ "device\n"); -+ exit(3); -+ } -+ if (!get_first_dfu_device(dif)) -+ exit(3); -+ -+ /* We have exactly one device. It's usb_device is now in dif->dev */ -+ -+ printf("Opening USB Device 0x%04x:0x%04x...\n", dif->vendor, dif->product); -+ dif->dev_handle = usb_open(dif->dev); -+ if (!dif->dev_handle) { -+ fprintf(stderr, "Cannot open device: %s\n", usb_strerror()); -+ exit(1); -+ } -+ -+ /* try to find first DFU interface of device */ -+ memcpy(&_rt_dif, dif, sizeof(_rt_dif)); -+ if (!get_first_dfu_if(&_rt_dif)) -+ exit(1); -+ -+ if (!_rt_dif.flags & DFU_IFF_DFU) { -+ /* In the 'first round' during runtime mode, there can only be one -+ * DFU Interface descriptor according to the DFU Spec. */ -+ -+ /* FIXME: check if the selected device really has only one */ -+ -+ printf("Claiming USB DFU Runtime Interface...\n"); -+ if (usb_claim_interface(_rt_dif.dev_handle, _rt_dif.interface) < 0) { -+ fprintf(stderr, "Cannot claim interface: %s\n", usb_strerror()); -+ exit(1); -+ } -+ -+ printf("Determining device status: "); -+ if (dfu_get_status(_rt_dif.dev_handle, _rt_dif.interface, &status ) < 0) { -+ fprintf(stderr, "error get_status: %s\n", usb_strerror()); -+ exit(1); -+ } -+ printf("state = %s, status = %d\n", dfu_state_to_string(status.bState), status.bStatus); -+ -+ switch (status.bState) { -+ case DFU_STATE_appIDLE: -+ case DFU_STATE_appDETACH: -+ printf("Device really in Runtime Mode, send DFU detach request...\n"); -+ if (dfu_detach(_rt_dif.dev_handle, _rt_dif.interface, 1000) < 0) { -+ fprintf(stderr, "error detaching: %s\n", usb_strerror()); -+ exit(1); -+ break; -+ } -+ printf("Resetting USB...\n"); -+ ret = usb_reset(_rt_dif.dev_handle); -+ if (ret < 0 && ret != -ENODEV) -+ fprintf(stderr, "error resetting after detach: %s\n", -+ usb_strerror()); -+ sleep(2); -+ break; -+ case DFU_STATE_dfuERROR: -+ printf("dfuERROR, clearing status\n"); -+ if (dfu_clear_status(_rt_dif.dev_handle, _rt_dif.interface) < 0) { -+ fprintf(stderr, "error clear_status: %s\n", usb_strerror()); -+ exit(1); -+ break; -+ } -+ break; -+ default: -+ fprintf(stderr, "WARNING: Runtime device already in DFU state ?!?\n"); -+ goto dfustate; -+ break; -+ } -+ -+ /* now we need to re-scan the bus and locate our device */ -+ if (usb_find_devices() < 2) -+ printf("not at least 2 device changes found ?!?\n"); -+ -+ if (dif->flags & DFU_IFF_PATH) { -+ ret = resolve_device_path(dif); -+ if (ret < 0) { -+ fprintf(stderr, -+ "internal error: cannot re-parse `%s'\n", -+ dif->path); -+ abort(); -+ } -+ if (!ret) { -+ fprintf(stderr, -+ "Can't resolve path after RESET?\n"); -+ exit(1); -+ } -+ } -+ -+ num_devs = count_dfu_devices(dif); -+ if (num_devs == 0) { -+ fprintf(stderr, "Lost device after RESET?\n"); -+ exit(1); -+ } else if (num_devs > 1) { -+ fprintf(stderr, "More than one DFU capable USB device found, " -+ "you might try `--list' and then disconnect all but one " -+ "device\n"); -+ exit(1); -+ } -+ if (!get_first_dfu_device(dif)) -+ exit(3); -+ -+ printf("Opening USB Device...\n"); -+ dif->dev_handle = usb_open(dif->dev); -+ if (!dif->dev_handle) { -+ fprintf(stderr, "Cannot open device: %s\n", usb_strerror()); -+ exit(1); -+ } -+ } else { -+ /* we're already in DFU mode, so we can skip the detach/reset -+ * procedure */ -+ } -+ -+dfustate: -+ if (alt_name) { -+ int n; -+ -+ n = find_dfu_if(dif->dev, &alt_by_name, alt_name); -+ if (!n) { -+ fprintf(stderr, "No such Alternate Setting: \"%s\"\n", -+ alt_name); -+ exit(1); -+ } -+ if (n < 0) { -+ fprintf(stderr, "Error %d in name lookup\n", n); -+ exit(1); -+ } -+ dif->altsetting = n-1; -+ } -+ -+ print_dfu_if(dif, NULL); -+ -+ num_ifs = count_dfu_interfaces(dif->dev); -+ if (num_ifs < 0) { -+ fprintf(stderr, "No DFU Interface after RESET?!?\n"); -+ exit(1); -+ } else if (num_ifs == 1) { -+ if (!get_first_dfu_if(dif)) { -+ fprintf(stderr, "Can't find the single available DFU IF\n"); -+ exit(1); -+ } -+ } else if (num_ifs > 1 && !dif->flags & (DFU_IFF_IFACE|DFU_IFF_ALT)) { -+ fprintf(stderr, "We have %u DFU Interfaces/Altsettings, " -+ "you have to specify one via --intf / --alt options\n", -+ num_ifs); -+ exit(1); -+ } -+ -+#if 0 -+ printf("Setting Configuration %u...\n", dif->configuration); -+ if (usb_set_configuration(dif->dev_handle, dif->configuration) < 0) { -+ fprintf(stderr, "Cannot set configuration: %s\n", usb_strerror()); -+ exit(1); -+ } -+#endif -+ printf("Claiming USB DFU Interface...\n"); -+ if (usb_claim_interface(dif->dev_handle, dif->interface) < 0) { -+ fprintf(stderr, "Cannot claim interface: %s\n", usb_strerror()); -+ exit(1); -+ } -+ -+ printf("Setting Alternate Setting ...\n"); -+ if (usb_set_altinterface(dif->dev_handle, dif->altsetting) < 0) { -+ fprintf(stderr, "Cannot set alternate interface: %s\n", -+ usb_strerror()); -+ exit(1); -+ } -+ -+status_again: -+ printf("Determining device status: "); -+ if (dfu_get_status(dif->dev_handle, dif->interface, &status ) < 0) { -+ fprintf(stderr, "error get_status: %s\n", usb_strerror()); -+ exit(1); -+ } -+ printf("state = %s, status = %d\n", dfu_state_to_string(status.bState), status.bStatus); -+ -+ switch (status.bState) { -+ case DFU_STATE_appIDLE: -+ case DFU_STATE_appDETACH: -+ fprintf(stderr, "Device still in Runtime Mode!\n"); -+ exit(1); -+ break; -+ case DFU_STATE_dfuERROR: -+ printf("dfuERROR, clearing status\n"); -+ if (dfu_clear_status(dif->dev_handle, dif->interface) < 0) { -+ fprintf(stderr, "error clear_status: %s\n", usb_strerror()); -+ exit(1); -+ } -+ goto status_again; -+ break; -+ case DFU_STATE_dfuDNLOAD_IDLE: -+ case DFU_STATE_dfuUPLOAD_IDLE: -+ printf("aborting previous incomplete transfer\n"); -+ if (dfu_abort(dif->dev_handle, dif->interface) < 0) { -+ fprintf(stderr, "can't send DFU_ABORT: %s\n", usb_strerror()); -+ exit(1); -+ } -+ goto status_again; -+ break; -+ case DFU_STATE_dfuIDLE: -+ printf("dfuIDLE, continuing\n"); -+ break; -+ } -+ -+ if (!transfer_size) { -+ /* Obtain DFU functional descriptor */ -+ ret = usb_get_descriptor(dif->dev_handle, 0x21, dif->interface, -+ &func_dfu, sizeof(func_dfu)); -+ if (ret < 0) { -+ fprintf(stderr, "Error obtaining DFU functional " -+ "descriptor: %s\n", usb_strerror()); -+ transfer_size = page_size; -+ } else { -+#if __BYTE_ORDER == __BIG_ENDIAN -+ func_dfu.wTransferSize = bswap_16(func_dfu.wTransferSize); -+#endif -+ transfer_size = func_dfu.wTransferSize; -+ } -+ } -+ -+ if (transfer_size > page_size) -+ transfer_size = page_size; -+ -+ printf("Transfer Size = 0x%04x\n", transfer_size); -+ -+ if (DFU_STATUS_OK != status.bStatus ) { -+ printf("WARNING: DFU Status: '%s'\n", -+ dfu_status_to_string(status.bStatus)); -+ /* Clear our status & try again. */ -+ dfu_clear_status(dif->dev_handle, dif->interface); -+ dfu_get_status(dif->dev_handle, dif->interface, &status); -+ -+ if (DFU_STATUS_OK != status.bStatus) { -+ fprintf(stderr, "Error: %d\n", status.bStatus); -+ exit(1); -+ } -+ } -+ -+ switch (mode) { -+ case MODE_UPLOAD: -+ if (sam7dfu_do_upload(dif->dev_handle, dif->interface, -+ transfer_size, filename) < 0) -+ exit(1); -+ break; -+ case MODE_DOWNLOAD: -+ if (sam7dfu_do_dnload(dif->dev_handle, dif->interface, -+ transfer_size, filename) < 0) -+ exit(1); -+ break; -+ default: -+ fprintf(stderr, "Unsupported mode: %u\n", mode); -+ exit(1); -+ } -+ -+ if (final_reset) { -+ if (dfu_detach(dif->dev_handle, dif->interface, 1000) < 0) { -+ fprintf(stderr, "can't detach: %s\n", usb_strerror()); -+ } -+ printf("Resetting USB to switch back to runtime mode\n"); -+ ret = usb_reset(dif->dev_handle); -+ if (ret < 0 && ret != -ENODEV) { -+ fprintf(stderr, "error resetting after download: %s\n", -+ usb_strerror()); -+ } -+ } -+ -+ exit(0); -+} -+ -diff --git a/tools/dfu-util/src/sam7dfu.c b/tools/dfu-util/src/sam7dfu.c -new file mode 100644 -index 0000000..536b2e1 ---- /dev/null -+++ b/tools/dfu-util/src/sam7dfu.c -@@ -0,0 +1,205 @@ -+/* This is supposed to be a "real" DFU implementation, just as specified in the -+ * USB DFU 1.0 Spec. Not overloaded like the Atmel one... -+ */ -+ -+#include <stdio.h> -+#include <stdlib.h> -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> -+#include <errno.h> -+#include <string.h> -+#include <usb.h> -+ -+#include "config.h" -+#include "dfu.h" -+#include "usb_dfu.h" -+ -+/* ugly hack for Win32 */ -+#ifndef O_BINARY -+#define O_BINARY 0 -+#endif -+ -+int sam7dfu_do_upload(struct usb_dev_handle *usb_handle, int interface, -+ int xfer_size, const char *fname) -+{ -+ int ret, fd, total_bytes = 0; -+ char *buf = malloc(xfer_size); -+ -+ if (!buf) -+ return -ENOMEM; -+ -+ fd = creat(fname, 0644); -+ if (fd < 0) { -+ perror(fname); -+ ret = fd; -+ goto out_free; -+ } -+ -+ while (1) { -+ int rc, write_rc; -+ rc = dfu_upload(usb_handle, interface, xfer_size, buf); -+ if (rc < 0) { -+ ret = rc; -+ goto out_close; -+ } -+ write_rc = write(fd, buf, rc); -+ if (write_rc < rc) { -+ fprintf(stderr, "Short write: %s\n", -+ strerror(errno)); -+ ret = total_bytes; -+ goto out_close; -+ } -+ total_bytes += rc; -+ if (rc < xfer_size) { -+ /* last block, return */ -+ ret = total_bytes; -+ goto out_close; -+ } -+ } -+ ret = 0; -+ -+out_close: -+ close(fd); -+out_free: -+ free(buf); -+ -+ return ret; -+} -+ -+#define PROGRESS_BAR_WIDTH 50 -+ -+int sam7dfu_do_dnload(struct usb_dev_handle *usb_handle, int interface, -+ int xfer_size, const char *fname) -+{ -+ int ret, fd, bytes_sent = 0; -+ unsigned int bytes_per_hash, hashes = 0; -+ char *buf = malloc(xfer_size); -+ struct stat st; -+ struct dfu_status dst; -+ -+ if (!buf) -+ return -ENOMEM; -+ -+ fd = open(fname, O_RDONLY|O_BINARY); -+ if (fd < 0) { -+ perror(fname); -+ ret = fd; -+ goto out_free; -+ } -+ -+ ret = fstat(fd, &st); -+ if (ret < 0) { -+ perror(fname); -+ goto out_close; -+ perror(fname); -+ } -+ -+ if (st.st_size <= 0 /* + DFU_HDR */) { -+ fprintf(stderr, "File seems a bit too small...\n"); -+ ret = -EINVAL; -+ goto out_close; -+ } -+ -+ bytes_per_hash = st.st_size / PROGRESS_BAR_WIDTH; -+ if (bytes_per_hash == 0) -+ bytes_per_hash = 1; -+ printf("bytes_per_hash=%u\n", bytes_per_hash); -+#if 0 -+ read(fd, DFU_HDR); -+#endif -+ printf("Starting download: ["); -+ fflush(stdout); -+ while (bytes_sent < st.st_size /* - DFU_HDR */) { -+ int hashes_todo; -+ -+ ret = read(fd, buf, xfer_size); -+ if (ret < 0) { -+ perror(fname); -+ goto out_close; -+ } -+ ret = dfu_download(usb_handle, interface, ret, ret ? buf : NULL); -+ if (ret < 0) { -+ fprintf(stderr, "Error during download\n"); -+ goto out_close; -+ } -+ bytes_sent += ret; -+ -+ do { -+ ret = dfu_get_status(usb_handle, interface, &dst); -+ if (ret < 0) { -+ fprintf(stderr, "Error during download get_status\n"); -+ goto out_close; -+ } -+ usleep(5000); -+ } while (dst.bState != DFU_STATE_dfuDNLOAD_IDLE); -+ if (dst.bStatus != DFU_STATUS_OK) { -+ printf(" failed!\n"); -+ printf("state(%u) = %s, status(%u) = %s\n", dst.bState, -+ dfu_state_to_string(dst.bState), dst.bStatus, -+ dfu_status_to_string(dst.bStatus)); -+ ret = -1; -+ goto out_close; -+ } -+ -+ hashes_todo = (bytes_sent / bytes_per_hash) - hashes; -+ hashes += hashes_todo; -+ while (hashes_todo--) -+ putchar('#'); -+ fflush(stdout); -+ } -+ -+ /* send one zero sized download request to signalize end */ -+ ret = dfu_download(usb_handle, interface, 0, NULL); -+ if (ret >= 0) -+ ret = bytes_sent; -+ -+ printf("] finished!\n"); -+ fflush(stdout); -+ -+get_status: -+ /* Transition to MANIFEST_SYNC state */ -+ ret = dfu_get_status(usb_handle, interface, &dst); -+ if (ret < 0) { -+ fprintf(stderr, "unable to read DFU status\n"); -+ goto out_close; -+ } -+ printf("state(%u) = %s, status(%u) = %s\n", dst.bState, -+ dfu_state_to_string(dst.bState), dst.bStatus, -+ dfu_status_to_string(dst.bStatus)); -+ -+ /* FIXME: deal correctly with ManifestationTolerant=0 / WillDetach bits */ -+ switch (dst.bState) { -+ case DFU_STATE_dfuMANIFEST_SYNC: -+ case DFU_STATE_dfuMANIFEST: -+ /* some devices (e.g. TAS1020b) need some time before we -+ * can obtain the status */ -+ sleep(1); -+ goto get_status; -+ break; -+ case DFU_STATE_dfuIDLE: -+ break; -+ } -+#if 0 -+ printf("Resetting USB...\n"); -+ if (usb_reset(usb_handle) < 0) { -+ fprintf(stderr, "error resetting after download: %s\n", -+ usb_strerror()); -+ } -+#endif -+ printf("Done!\n"); -+out_close: -+ close(fd); -+out_free: -+ free(buf); -+ -+ return ret; -+} -+ -+void sam7dfu_init() -+{ -+ dfu_debug( debug ); -+ dfu_init( 5000 ); -+} -+ -+ -diff --git a/tools/dfu-util/src/sam7dfu.h b/tools/dfu-util/src/sam7dfu.h -new file mode 100644 -index 0000000..8ebe5a2 ---- /dev/null -+++ b/tools/dfu-util/src/sam7dfu.h -@@ -0,0 +1,9 @@ -+#ifndef _SAM7DFU_H -+#define _SAM7DFU_H -+ -+int sam7dfu_do_upload(struct usb_dev_handle *usb_handle, int interface, -+ int xfer_size, const char *fname); -+int sam7dfu_do_dnload(struct usb_dev_handle *usb_handle, int interface, -+ int xfer_size, const char *fname); -+ -+#endif -diff --git a/tools/dfu-util/src/usb_dfu.h b/tools/dfu-util/src/usb_dfu.h -new file mode 100644 -index 0000000..117d73c ---- /dev/null -+++ b/tools/dfu-util/src/usb_dfu.h -@@ -0,0 +1,94 @@ -+#ifndef _USB_DFU_H -+#define _USB_DFU_H -+/* USB Device Firmware Update Implementation for OpenPCD -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * Protocol definitions for USB DFU -+ * -+ * This ought to be compliant to the USB DFU Spec 1.0 as available from -+ * http://www.usb.org/developers/devclass_docs/usbdfu10.pdf -+ * -+ */ -+ -+#include <sys/types.h> -+ -+#define USB_DT_DFU 0x21 -+ -+struct usb_dfu_func_descriptor { -+ u_int8_t bLength; -+ u_int8_t bDescriptorType; -+ u_int8_t bmAttributes; -+#define USB_DFU_CAN_DOWNLOAD (1 << 0) -+#define USB_DFU_CAN_UPLOAD (1 << 1) -+#define USB_DFU_MANIFEST_TOL (1 << 2) -+#define USB_DFU_WILL_DETACH (1 << 3) -+ u_int16_t wDetachTimeOut; -+ u_int16_t wTransferSize; -+ u_int16_t bcdDFUVersion; -+} __attribute__ ((packed)); -+ -+#define USB_DT_DFU_SIZE 9 -+ -+#define USB_TYPE_DFU (USB_TYPE_CLASS|USB_RECIP_INTERFACE) -+ -+/* DFU class-specific requests (Section 3, DFU Rev 1.1) */ -+#define USB_REQ_DFU_DETACH 0x00 -+#define USB_REQ_DFU_DNLOAD 0x01 -+#define USB_REQ_DFU_UPLOAD 0x02 -+#define USB_REQ_DFU_GETSTATUS 0x03 -+#define USB_REQ_DFU_CLRSTATUS 0x04 -+#define USB_REQ_DFU_GETSTATE 0x05 -+#define USB_REQ_DFU_ABORT 0x06 -+ -+#if 0 -+struct dfu_status { -+ u_int8_t bStatus; -+ u_int8_t bwPollTimeout[3]; -+ u_int8_t bState; -+ u_int8_t iString; -+} __attribute__((packed)); -+#endif -+ -+#define DFU_STATUS_OK 0x00 -+#define DFU_STATUS_errTARGET 0x01 -+#define DFU_STATUS_errFILE 0x02 -+#define DFU_STATUS_errWRITE 0x03 -+#define DFU_STATUS_errERASE 0x04 -+#define DFU_STATUS_errCHECK_ERASED 0x05 -+#define DFU_STATUS_errPROG 0x06 -+#define DFU_STATUS_errVERIFY 0x07 -+#define DFU_STATUS_errADDRESS 0x08 -+#define DFU_STATUS_errNOTDONE 0x09 -+#define DFU_STATUS_errFIRMWARE 0x0a -+#define DFU_STATUS_errVENDOR 0x0b -+#define DFU_STATUS_errUSBR 0x0c -+#define DFU_STATUS_errPOR 0x0d -+#define DFU_STATUS_errUNKNOWN 0x0e -+#define DFU_STATUS_errSTALLEDPKT 0x0f -+ -+enum dfu_state { -+ DFU_STATE_appIDLE = 0, -+ DFU_STATE_appDETACH = 1, -+ DFU_STATE_dfuIDLE = 2, -+ DFU_STATE_dfuDNLOAD_SYNC = 3, -+ DFU_STATE_dfuDNBUSY = 4, -+ DFU_STATE_dfuDNLOAD_IDLE = 5, -+ DFU_STATE_dfuMANIFEST_SYNC = 6, -+ DFU_STATE_dfuMANIFEST = 7, -+ DFU_STATE_dfuMANIFEST_WAIT_RST = 8, -+ DFU_STATE_dfuUPLOAD_IDLE = 9, -+ DFU_STATE_dfuERROR = 10, -+}; -+ -+/* this is the 'swapped' definition, i.e. after/before mirroring */ -+struct dfu_file_suffix { -+ u_int32_t dwCRC; /* CRC32 ANSI X3.66 */ -+ u_int8_t bLength; /* 16 bytes */ -+ char ucDfuSignature[3]; /* "DFU" */ -+ u_int16_t bcdDFU; /* Version */ -+ u_int16_t idVendor; /* VendorID */ -+ u_int16_t idProduct; /* ProductID */ -+ u_int16_t bcdDevice; /* Device Revision, or 0xffff */ -+} __attribute__ ((packed)); -+ -+#endif /* _USB_DFU_H */ -diff --git a/tools/mkudfu/Makefile b/tools/mkudfu/Makefile -new file mode 100644 -index 0000000..e02b94a ---- /dev/null -+++ b/tools/mkudfu/Makefile -@@ -0,0 +1,7 @@ -+CC=gcc -+ -+all: mkudfu.c usb_dfu_trailer.h -+ $(CC) mkudfu.c -o mkudfu -I. -+ -+clean: -+ rm mkudfu -diff --git a/tools/mkudfu/mkudfu.c b/tools/mkudfu/mkudfu.c -new file mode 100644 -index 0000000..6924ada ---- /dev/null -+++ b/tools/mkudfu/mkudfu.c -@@ -0,0 +1,314 @@ -+/* -+ * USB DFU file trailer tool -+ * (C) Copyright by OpenMoko, Inc. -+ * Author: Harald Welte <laforge@openmoko.org> -+ * -+ * based on mkimage.c, copyright information as follows: -+ * -+ * (C) Copyright 2000-2004 -+ * DENX Software Engineering -+ * Wolfgang Denk, wd@denx.de -+ * All rights reserved. -+ * -+ * This program 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 -+ */ -+ -+#include <errno.h> -+#include <fcntl.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <string.h> -+#ifndef __WIN32__ -+#include <netinet/in.h> /* for host / network byte order conversions */ -+#endif -+#include <sys/mman.h> -+#include <sys/stat.h> -+#include <time.h> -+#include <unistd.h> -+ -+#if defined(__BEOS__) || defined(__NetBSD__) || defined(__APPLE__) -+#include <inttypes.h> -+#endif -+ -+#ifdef __WIN32__ -+typedef unsigned int __u32; -+ -+#define SWAP_LONG(x) \ -+ ((__u32)( \ -+ (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ -+ (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \ -+ (((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \ -+ (((__u32)(x) & (__u32)0xff000000UL) >> 24) )) -+typedef unsigned char uint8_t; -+typedef unsigned short uint16_t; -+typedef unsigned int uint32_t; -+ -+#define ntohl(a) SWAP_LONG(a) -+#define htonl(a) SWAP_LONG(a) -+#endif /* __WIN32__ */ -+ -+#ifndef O_BINARY /* should be define'd on __WIN32__ */ -+#define O_BINARY 0 -+#endif -+ -+#include <usb_dfu_trailer.h> -+ -+extern int errno; -+ -+#ifndef MAP_FAILED -+#define MAP_FAILED (-1) -+#endif -+ -+static char *cmdname; -+ -+static char *datafile; -+static char *imagefile; -+ -+ -+static void usage() -+{ -+ fprintf (stderr, "%s - create / display u-boot DFU trailer\n", cmdname); -+ fprintf (stderr, "Usage: %s -l image\n" -+ " -l ==> list image header information\n" -+ " %s -v VID -p PID -r REV -d data_file image\n", -+ cmdname, cmdname); -+ fprintf (stderr, " -v ==> set vendor ID to 'VID'\n" -+ " -p ==> set product ID system to 'PID'\n" -+ " -r ==> set hardware revision to 'REV'\n" -+ " -d ==> use 'data_file' as input file\n" -+ ); -+ exit (EXIT_FAILURE); -+} -+ -+static void print_trailer(struct uboot_dfu_trailer *trailer) -+{ -+ printf("===> DFU Trailer information:\n"); -+ printf("Trailer Vers.: %d\n", trailer->version); -+ printf("Trailer Length: %d\n", trailer->length); -+ printf("VendorID: 0x%04x\n", trailer->vendor); -+ printf("ProductID: 0x%04x\n", trailer->product); -+ printf("HW Revision: 0x%04x\n", trailer->revision); -+} -+ -+static void copy_file (int ifd, const char *datafile, int pad) -+{ -+ int dfd; -+ struct stat sbuf; -+ unsigned char *ptr; -+ int tail; -+ int zero = 0; -+ int offset = 0; -+ int size; -+ -+ if ((dfd = open(datafile, O_RDONLY|O_BINARY)) < 0) { -+ fprintf (stderr, "%s: Can't open %s: %s\n", -+ cmdname, datafile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ if (fstat(dfd, &sbuf) < 0) { -+ fprintf (stderr, "%s: Can't stat %s: %s\n", -+ cmdname, datafile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ ptr = (unsigned char *)mmap(0, sbuf.st_size, -+ PROT_READ, MAP_SHARED, dfd, 0); -+ if (ptr == (unsigned char *)MAP_FAILED) { -+ fprintf (stderr, "%s: Can't read %s: %s\n", -+ cmdname, datafile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ size = sbuf.st_size - offset; -+ if (write(ifd, ptr + offset, size) != size) { -+ fprintf (stderr, "%s: Write error on %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ if (pad && ((tail = size % 4) != 0)) { -+ -+ if (write(ifd, (char *)&zero, 4-tail) != 4-tail) { -+ fprintf (stderr, "%s: Write error on %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ } -+ -+ (void) munmap((void *)ptr, sbuf.st_size); -+ (void) close (dfd); -+} -+ -+ -+int main(int argc, char **argv) -+{ -+ int ifd; -+ int lflag = 0; -+ struct stat sbuf; -+ u_int16_t opt_vendor, opt_product, opt_revision; -+ struct uboot_dfu_trailer _hdr, _mirror, *hdr = &_hdr; -+ -+ opt_vendor = opt_product = opt_revision = 0; -+ -+ cmdname = *argv; -+ -+ while (--argc > 0 && **++argv == '-') { -+ while (*++*argv) { -+ switch (**argv) { -+ case 'l': -+ lflag = 1; -+ break; -+ case 'v': -+ if (--argc <= 0) -+ usage (); -+ opt_vendor = strtoul(*++argv, NULL, 16); -+ goto NXTARG; -+ case 'p': -+ if (--argc <= 0) -+ usage (); -+ opt_product = strtoul(*++argv, NULL, 16); -+ goto NXTARG; -+ case 'r': -+ if (--argc <= 0) -+ usage (); -+ opt_revision = strtoul(*++argv, NULL, 16); -+ goto NXTARG; -+ case 'd': -+ if (--argc <= 0) -+ usage (); -+ datafile = *++argv; -+ goto NXTARG; -+ case 'h': -+ usage(); -+ break; -+ default: -+ usage(); -+ } -+ } -+NXTARG: ; -+ } -+ -+ if (argc != 1) -+ usage(); -+ -+ imagefile = *argv; -+ -+ if (lflag) -+ ifd = open(imagefile, O_RDONLY|O_BINARY); -+ else -+ ifd = open(imagefile, O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666); -+ -+ if (ifd < 0) { -+ fprintf (stderr, "%s: Can't open %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ if (lflag) { -+ unsigned char *ptr; -+ /* list header information of existing image */ -+ if (fstat(ifd, &sbuf) < 0) { -+ fprintf (stderr, "%s: Can't stat %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ if ((unsigned)sbuf.st_size < sizeof(struct uboot_dfu_trailer)) { -+ fprintf (stderr, -+ "%s: Bad size: \"%s\" is no valid image\n", -+ cmdname, imagefile); -+ exit (EXIT_FAILURE); -+ } -+ -+ ptr = (unsigned char *)mmap(0, sbuf.st_size, -+ PROT_READ, MAP_SHARED, ifd, 0); -+ if ((caddr_t)ptr == (caddr_t)-1) { -+ fprintf (stderr, "%s: Can't read %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ dfu_trailer_mirror(hdr, ptr+sbuf.st_size); -+ -+ if (hdr->magic != UBOOT_DFU_TRAILER_MAGIC) { -+ fprintf (stderr, -+ "%s: Bad Magic Number: \"%s\" is no valid image\n", -+ cmdname, imagefile); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* for multi-file images we need the data part, too */ -+ print_trailer(hdr); -+ -+ (void) munmap((void *)ptr, sbuf.st_size); -+ (void) close (ifd); -+ -+ exit (EXIT_SUCCESS); -+ } -+ -+ /* if we're not listing: */ -+ -+ copy_file (ifd, datafile, 0); -+ -+ memset (hdr, 0, sizeof(struct uboot_dfu_trailer)); -+ -+ /* Build new header */ -+ hdr->version = UBOOT_DFU_TRAILER_V1; -+ hdr->magic = UBOOT_DFU_TRAILER_MAGIC; -+ hdr->length = sizeof(struct uboot_dfu_trailer); -+ hdr->vendor = opt_vendor; -+ hdr->product = opt_product; -+ hdr->revision = opt_revision; -+ -+ print_trailer(hdr); -+ dfu_trailer_mirror(&_mirror, (unsigned char *)hdr+sizeof(*hdr)); -+ -+ if (write(ifd, &_mirror, sizeof(struct uboot_dfu_trailer)) -+ != sizeof(struct uboot_dfu_trailer)) { -+ fprintf (stderr, "%s: Write error on %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* We're a bit of paranoid */ -+#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) -+ (void) fdatasync (ifd); -+#else -+ (void) fsync (ifd); -+#endif -+ -+ if (fstat(ifd, &sbuf) < 0) { -+ fprintf (stderr, "%s: Can't stat %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* We're a bit of paranoid */ -+#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) -+ (void) fdatasync (ifd); -+#else -+ (void) fsync (ifd); -+#endif -+ -+ if (close(ifd)) { -+ fprintf (stderr, "%s: Write error on %s: %s\n", -+ cmdname, imagefile, strerror(errno)); -+ exit (EXIT_FAILURE); -+ } -+ -+ exit (EXIT_SUCCESS); -+} -diff --git a/tools/mkudfu/usb_dfu_trailer.h b/tools/mkudfu/usb_dfu_trailer.h -new file mode 100644 -index 0000000..3903b85 ---- /dev/null -+++ b/tools/mkudfu/usb_dfu_trailer.h -@@ -0,0 +1,31 @@ -+#ifndef _USB_DFU_TRAILER_H -+#define _USB_DFU_TRAILER_H -+ -+/* trailer handling for DFU files */ -+ -+#define UBOOT_DFU_TRAILER_V1 1 -+#define UBOOT_DFU_TRAILER_MAGIC 0x19731978 -+struct uboot_dfu_trailer { -+ u_int32_t magic; -+ u_int16_t version; -+ u_int16_t length; -+ u_int16_t vendor; -+ u_int16_t product; -+ u_int32_t revision; -+} __attribute__((packed)); -+ -+/* we mirror the trailer because we want it to be longer in later versions -+ * while keeping backwards compatibility */ -+static inline void dfu_trailer_mirror(struct uboot_dfu_trailer *trailer, -+ unsigned char *eof) -+{ -+ int i; -+ int len = sizeof(struct uboot_dfu_trailer); -+ unsigned char *src = eof - len; -+ unsigned char *dst = (unsigned char *) trailer; -+ -+ for (i = 0; i < len; i++) -+ dst[len-1-i] = src[i]; -+} -+ -+#endif /* _USB_DFU_TRAILER_H */ diff --git a/recipes/u-boot/files/rootfs.patch b/recipes/u-boot/files/rootfs.patch deleted file mode 100644 index 655c040500..0000000000 --- a/recipes/u-boot/files/rootfs.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- git/include/configs/omap3_overo.h-orig 2009-09-17 13:06:08.000000000 -0700 -+++ git/include/configs/omap3_overo.h 2009-09-17 13:06:49.000000000 -0700 -@@ -158,20 +158,24 @@ - "vram=12M\0" \ - "dvimode=1024x768MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -+ "mmcroot=/dev/mmcblk0p2 rw\0" \ -+ "mmcrootfstype=ext3 rootwait\0" \ -+ "nandroot=/dev/mtdblock4 rw\0" \ -+ "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ - "omapdss.def_disp=${defaultdisplay} " \ -- "root=/dev/mmcblk0p2 rw " \ -- "rootfstype=ext3 rootwait\0" \ -+ "root=${mmcroot} " \ -+ "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ - "omapdss.def_disp=${defaultdisplay} " \ -- "root=/dev/mtdblock4 rw " \ -- "rootfstype=jffs2\0" \ -+ "root=${nandroot} " \ -+ "rootfstype=${nandrootfstype}\0" \ - "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source ${loadaddr}\0" \ ---- git/include/configs/omap3_beagle.h-orig 2009-09-17 14:48:55.000000000 -0700 -+++ git/include/configs/omap3_beagle.h 2009-09-19 22:15:01.000000000 -0700 -@@ -167,20 +167,24 @@ - "vram=12M\0" \ - "dvimode=1024x768MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -+ "mmcroot=/dev/mmcblk0p2 rw\0" \ -+ "mmcrootfstype=ext3 rootwait\0" \ -+ "nandroot=/dev/mtdblock4 rw\0" \ -+ "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ - "omapdss.def_disp=${defaultdisplay} " \ -- "root=/dev/mmcblk0p2 rw " \ -- "rootfstype=ext3 rootwait\0" \ -+ "root=${mmcroot} " \ -+ "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ - "omapdss.def_disp=${defaultdisplay} " \ -- "root=/dev/mtdblock4 rw " \ -- "rootfstype=jffs2\0" \ -+ "root=${nandroot} " \ -+ "rootfstype=${nandrootfstype}\0" \ - "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source ${loadaddr}\0" \ diff --git a/recipes/u-boot/files/sffsdr-u-boot.patch b/recipes/u-boot/files/sffsdr-u-boot.patch deleted file mode 100644 index dcb34e2c51..0000000000 --- a/recipes/u-boot/files/sffsdr-u-boot.patch +++ /dev/null @@ -1,830 +0,0 @@ -X-Mozilla-Status: 0001 -X-Mozilla-Status2: 00000000 -X-Mozilla-Keys: -Return-Path: <u-boot-users-bounces@lists.sourceforge.net> -Received: from mail5.zoneedit.com (mail5.zoneedit.com [69.64.89.63]) - by www.balister.org (8.13.8/8.13.5) with ESMTP id m56KcqTB024438 - for <balister@www.balister.org>; Fri, 6 Jun 2008 16:38:53 -0400 -Received: from lists-outbound.sourceforge.net (lists-outbound.sourceforge.net [66.35.250.225]) - by mail5.zoneedit.com (Postfix) with ESMTP id BD2E51594778 - for <philip@balister.org>; Fri, 6 Jun 2008 13:26:54 -0700 (PDT) -Received: from sc8-sf-list1-new.sourceforge.net (sc8-sf-list1-new-b.sourceforge.net [10.3.1.93]) - by sc8-sf-spam2.sourceforge.net (Postfix) with ESMTP - id 4C55A12A74; Fri, 6 Jun 2008 13:38:52 -0700 (PDT) -Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] - helo=mail.sourceforge.net) - by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) - id 1K4ii2-00059t-CF - for u-boot-users@lists.sourceforge.net; Fri, 06 Jun 2008 13:38:50 -0700 -Received: from 201-217-static-ppp.3menatwork.com ([64.235.217.201] - helo=server.hugovil.com) - by mail.sourceforge.net with esmtp (Exim 4.44) id 1K4ihy-0003RQ-Od - for u-boot-users@lists.sourceforge.net; Fri, 06 Jun 2008 13:38:50 -0700 -Received: from localhost.localdomain (mail.lyrtech.com [204.101.172.90]) - by server.hugovil.com (8.13.6/8.13.6) with ESMTP id m56KcjQC031450; - Fri, 6 Jun 2008 16:38:46 -0400 -From: Hugo Villeneuve <hugo.villeneuve@lyrtech.com> -To: u-boot-users@lists.sourceforge.net -Date: Fri, 6 Jun 2008 16:39:10 -0400 -Message-Id: <1212784750-10682-1-git-send-email-hugo.villeneuve@lyrtech.com> -X-Mailer: git-send-email 1.5.4.5 -X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-3.0 - (server.hugovil.com [64.235.217.201]); - Fri, 06 Jun 2008 16:38:46 -0400 (EDT) -X-Spam-Score: 1.2 (+) -X-Spam-Report: Spam Filtering performed by sourceforge.net. - See http://spamassassin.org/tag/ for more details. - Report problems to - http://sf.net/tracker/?func=add&group_id=1&atid=200001 - 1.0 FORGED_RCVD_HELO Received: contains a forged HELO - 0.2 UPPERCASE_25_50 message body is 25-50% uppercase - 0.0 DRUGS_SLEEP Refers to a sleep aid drug -Cc: "Philip Balister, OpenSDR" <philip@opensdr.com> -Subject: [U-Boot-Users] [PATCH V8] ARM: Add support for Lyrtech SFF-SDR - board (ARM926EJS) -X-BeenThere: u-boot-users@lists.sourceforge.net -X-Mailman-Version: 2.1.8 -Precedence: list -List-Id: Universal Boot Loader general discussion - <u-boot-users.lists.sourceforge.net> -List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/u-boot-users>, - <mailto:u-boot-users-request@lists.sourceforge.net?subject=unsubscribe> -List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=u-boot-users> -List-Post: <mailto:u-boot-users@lists.sourceforge.net> -List-Help: <mailto:u-boot-users-request@lists.sourceforge.net?subject=help> -List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/u-boot-users>, - <mailto:u-boot-users-request@lists.sourceforge.net?subject=subscribe> -MIME-Version: 1.0 -Content-Type: text/plain; charset="us-ascii" -Content-Transfer-Encoding: 7bit -Sender: u-boot-users-bounces@lists.sourceforge.net -Errors-To: u-boot-users-bounces@lists.sourceforge.net - -ARM: This patch adds support for the Lyrtech SFF-SDR -board, based on the TI DaVinci architecture (ARM926EJS). - -Signed-off-by: Hugo Villeneuve <hugo.villeneuve@lyrtech.com> -Signed-off-by: Philip Balister, OpenSDR <philip@opensdr.com> - ---- - - CREDITS | 5 + - MAKEALL | 1 + - Makefile | 3 + - board/davinci/sffsdr/Makefile | 51 ++++++ - board/davinci/sffsdr/board_init.S | 32 ++++ - board/davinci/sffsdr/config.mk | 42 +++++ - board/davinci/sffsdr/sffsdr.c | 306 +++++++++++++++++++++++++++++++++++++ - board/davinci/sffsdr/u-boot.lds | 52 +++++++ - include/asm-arm/mach-types.h | 13 ++ - include/configs/davinci_sffsdr.h | 148 ++++++++++++++++++ - 10 files changed, 653 insertions(+), 0 deletions(-) - -diff --git a/CREDITS b/CREDITS -index e84ef38..b855904 100644 ---- a/CREDITS -+++ b/CREDITS -@@ -533,3 +533,8 @@ N: Timo Tuunainen - E: timo.tuunainen@sysart.fi - D: Support for Artila M-501 starter kit - W: http://www.sysart.fi/ -+ -+N: Philip Balister -+E: philip@opensdr.com -+D: Port to Lyrtech SFFSDR development board. -+W: www.opensdr.com -diff --git a/MAKEALL b/MAKEALL -index 37b4334..f53ceec 100755 ---- a/MAKEALL -+++ b/MAKEALL -@@ -496,6 +496,7 @@ LIST_ARM9=" \ - voiceblue \ - davinci_dvevm \ - davinci_schmoogie \ -+ davinci_sffsdr \ - davinci_sonata \ - " - -diff --git a/Makefile b/Makefile -index 6548f8e..05d90aa 100644 ---- a/Makefile -+++ b/Makefile -@@ -2408,6 +2408,9 @@ davinci_dvevm_config : unconfig - davinci_schmoogie_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci - -+davinci_sffsdr_config : unconfig -+ @$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci -+ - davinci_sonata_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci - -diff --git a/board/davinci/sffsdr/Makefile b/board/davinci/sffsdr/Makefile -new file mode 100644 -index 0000000..4413b33 ---- /dev/null -+++ b/board/davinci/sffsdr/Makefile -@@ -0,0 +1,51 @@ -+# -+# (C) Copyright 2000, 2001, 2002 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program 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 -+ -+include $(TOPDIR)/config.mk -+ -+LIB = $(obj)lib$(BOARD).a -+ -+COBJS := $(BOARD).o -+SOBJS := board_init.o -+ -+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -+OBJS := $(addprefix $(obj),$(COBJS)) -+SOBJS := $(addprefix $(obj),$(SOBJS)) -+ -+$(LIB): $(obj).depend $(OBJS) $(SOBJS) -+ $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) -+ -+clean: -+ rm -f $(SOBJS) $(OBJS) -+ -+distclean: clean -+ rm -f $(LIB) core *.bak *~ .depend -+ -+######################################################################### -+# This is for $(obj).depend target -+include $(SRCTREE)/rules.mk -+ -+sinclude $(obj).depend -+ -+######################################################################### -diff --git a/board/davinci/sffsdr/board_init.S b/board/davinci/sffsdr/board_init.S -new file mode 100644 -index 0000000..84ecd96 ---- /dev/null -+++ b/board/davinci/sffsdr/board_init.S -@@ -0,0 +1,32 @@ -+/* -+ * Board-specific low level initialization code. Called at the very end -+ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no -+ * initialization required. -+ * -+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ */ -+ -+#include <config.h> -+ -+.globl dv_board_init -+dv_board_init: -+ -+ mov pc, lr -diff --git a/board/davinci/sffsdr/config.mk b/board/davinci/sffsdr/config.mk -new file mode 100644 -index 0000000..b1c4ead ---- /dev/null -+++ b/board/davinci/sffsdr/config.mk -@@ -0,0 +1,42 @@ -+# -+# Lyrtech SFF SDR board (ARM926EJS) cpu -+# -+# (C) Copyright 2002 -+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+# -+# Copyright (C) 2008 Lyrtech <www.lyrtech.com> -+# Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com> -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program 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 -+ -+# -+# SFF SDR board has 1 bank of 128 MB DDR RAM -+# Physical Address: -+# 8000'0000 to 87FF'FFFF -+# -+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000 -+# (mem base + reserved) -+# -+# Integrity kernel is expected to be at 8000'0000, entry 8000'00D0, -+# up to 81FF'FFFF (uses up to 32 MB of memory for text, heap, etc). -+# -+# we load ourself to 8400'0000 to provide at least 32MB spacing -+# between us and the Integrity kernel image -+TEXT_BASE = 0x84000000 -diff --git a/board/davinci/sffsdr/sffsdr.c b/board/davinci/sffsdr/sffsdr.c -new file mode 100644 -index 0000000..31e0f24 ---- /dev/null -+++ b/board/davinci/sffsdr/sffsdr.c -@@ -0,0 +1,306 @@ -+/* -+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> -+ * -+ * Copyright (C) 2008 Lyrtech <www.lyrtech.com> -+ * Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com> -+ * -+ * Parts are shamelessly stolen from various TI sources, original copyright -+ * follows: -+ * -+ * Copyright (C) 2004 Texas Instruments. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#include <common.h> -+#include <i2c.h> -+#include <asm/arch/hardware.h> -+#include <asm/arch/emac_defs.h> -+ -+#define DAVINCI_A3CR (0x01E00014) /* EMIF-A CS3 config register. */ -+#define DAVINCI_A3CR_VAL (0x3FFFFFFD) /* EMIF-A CS3 value for FPGA. */ -+ -+#define INTEGRITY_SYSCFG_OFFSET 0x7E8 -+#define INTEGRITY_CHECKWORD_OFFSET 0x7F8 -+#define INTEGRITY_CHECKWORD_VALUE 0x10ADBEEF -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+extern void timer_init(void); -+extern int eth_hw_init(void); -+extern phy_t phy; -+ -+ -+/* Works on Always On power domain only (no PD argument) */ -+void lpsc_on(unsigned int id) -+{ -+ dv_reg_p mdstat, mdctl; -+ -+ if (id >= DAVINCI_LPSC_GEM) -+ return; /* Don't work on DSP Power Domain */ -+ -+ mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4)); -+ mdctl = REG_P(PSC_MDCTL_BASE + (id * 4)); -+ -+ while (REG(PSC_PTSTAT) & 0x01); -+ -+ if ((*mdstat & 0x1f) == 0x03) -+ return; /* Already on and enabled */ -+ -+ *mdctl |= 0x03; -+ -+ /* Special treatment for some modules as for sprue14 p.7.4.2 */ -+ switch (id) { -+ case DAVINCI_LPSC_VPSSSLV: -+ case DAVINCI_LPSC_EMAC: -+ case DAVINCI_LPSC_EMAC_WRAPPER: -+ case DAVINCI_LPSC_MDIO: -+ case DAVINCI_LPSC_USB: -+ case DAVINCI_LPSC_ATA: -+ case DAVINCI_LPSC_VLYNQ: -+ case DAVINCI_LPSC_UHPI: -+ case DAVINCI_LPSC_DDR_EMIF: -+ case DAVINCI_LPSC_AEMIF: -+ case DAVINCI_LPSC_MMC_SD: -+ case DAVINCI_LPSC_MEMSTICK: -+ case DAVINCI_LPSC_McBSP: -+ case DAVINCI_LPSC_GPIO: -+ *mdctl |= 0x200; -+ break; -+ } -+ -+ REG(PSC_PTCMD) = 0x01; -+ -+ while (REG(PSC_PTSTAT) & 0x03); -+ while ((*mdstat & 0x1f) != 0x03); /* Probably an overkill... */ -+} -+ -+void dsp_on(void) -+{ -+ int i; -+ -+ if (REG(PSC_PDSTAT1) & 0x1f) -+ return; /* Already on */ -+ -+ REG(PSC_GBLCTL) |= 0x01; -+ REG(PSC_PDCTL1) |= 0x01; -+ REG(PSC_PDCTL1) &= ~0x100; -+ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03; -+ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff; -+ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03; -+ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff; -+ REG(PSC_PTCMD) = 0x02; -+ -+ for (i = 0; i < 100; i++) { -+ if (REG(PSC_EPCPR) & 0x02) -+ break; -+ } -+ -+ REG(PSC_CHP_SHRTSW) = 0x01; -+ REG(PSC_PDCTL1) |= 0x100; -+ REG(PSC_EPCCR) = 0x02; -+ -+ for (i = 0; i < 100; i++) { -+ if (!(REG(PSC_PTSTAT) & 0x02)) -+ break; -+ } -+ -+ REG(PSC_GBLCTL) &= ~0x1f; -+} -+ -+int board_init(void) -+{ -+ /* arch number of the board */ -+ gd->bd->bi_arch_number = MACH_TYPE_SFFSDR; -+ -+ /* address of boot parameters */ -+ gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR; -+ -+ /* Workaround for TMS320DM6446 errata 1.3.22 */ -+ REG(PSC_SILVER_BULLET) = 0; -+ -+ /* Power on required peripherals */ -+ lpsc_on(DAVINCI_LPSC_EMAC); -+ lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER); -+ lpsc_on(DAVINCI_LPSC_MDIO); -+ lpsc_on(DAVINCI_LPSC_I2C); -+ lpsc_on(DAVINCI_LPSC_UART0); -+ lpsc_on(DAVINCI_LPSC_TIMER1); -+ lpsc_on(DAVINCI_LPSC_GPIO); -+ -+ /* Powerup the DSP */ -+ dsp_on(); -+ -+ /* Bringup UART0 out of reset */ -+ REG(UART0_PWREMU_MGMT) = 0x0000e003; -+ -+ /* Enable GIO3.3V cells used for EMAC */ -+ REG(VDD3P3V_PWDN) = 0; -+ -+ /* Enable UART0 MUX lines */ -+ REG(PINMUX1) |= 1; -+ -+ /* Enable EMAC and AEMIF pins */ -+ REG(PINMUX0) = 0x80000c1f; -+ -+ /* Enable I2C pin Mux */ -+ REG(PINMUX1) |= (1 << 7); -+ -+ /* Set the Bus Priority Register to appropriate value */ -+ REG(VBPR) = 0x20; -+ -+ timer_init(); -+ -+ return(0); -+} -+ -+/* Read ethernet MAC address from Integrity data structure inside EEPROM. */ -+int read_mac_address(uint8_t *buf) -+{ -+ u_int32_t value, mac[2], address; -+ -+ /* Read Integrity data structure checkword. */ -+ if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET, -+ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) -+ goto err; -+ if (value != INTEGRITY_CHECKWORD_VALUE) -+ return 1; -+ -+ /* Read SYSCFG structure offset. */ -+ if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_SYSCFG_OFFSET, -+ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) -+ goto err; -+ address = 0x800 + (int) value; /* Address of SYSCFG structure. */ -+ -+ /* Read NET CONFIG structure offset. */ -+ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, -+ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) -+ goto err; -+ address = 0x800 + (int) value; /* Address of NET CONFIG structure. */ -+ address += 12; /* Address of NET INTERFACE CONFIG structure. */ -+ -+ /* Read NET INTERFACE CONFIG 2 structure offset. */ -+ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, -+ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) -+ goto err; -+ address = 0x800 + 16 + (int) value; /* Address of NET INTERFACE -+ * CONFIG 2 structure. */ -+ -+ /* Read MAC address. */ -+ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, -+ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &mac[0], 8)) -+ goto err; -+ -+ buf[0] = mac[0] >> 24; -+ buf[1] = mac[0] >> 16; -+ buf[2] = mac[0] >> 8; -+ buf[3] = mac[0]; -+ buf[4] = mac[1] >> 24; -+ buf[5] = mac[1] >> 16; -+ -+ return 0; -+ -+err: -+ printf("Read from EEPROM @ 0x%02x failed\n", CFG_I2C_EEPROM_ADDR); -+ return 1; -+} -+ -+/* Platform dependent initialisation. */ -+int misc_init_r(void) -+{ -+ int i; -+ u_int8_t i2cbuf; -+ u_int8_t env_enetaddr[6], eeprom_enetaddr[6]; -+ char *tmp = getenv("ethaddr"); -+ char *end; -+ int clk; -+ -+ /* EMIF-A CS3 configuration for FPGA. */ -+ REG(DAVINCI_A3CR) = DAVINCI_A3CR_VAL; -+ -+ clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1); -+ -+ printf("ARM Clock: %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27) / 2); -+ printf("DDR Clock: %dMHz\n", (clk / 2)); -+ -+ /* Configure I2C switch (PCA9543) to enable channel 0. */ -+ i2cbuf = CFG_I2C_PCA9543_ENABLE_CH0; -+ if (i2c_write(CFG_I2C_PCA9543_ADDR, 0, -+ CFG_I2C_PCA9543_ADDR_LEN, &i2cbuf, 1)) { -+ printf("Write to MUX @ 0x%02x failed\n", CFG_I2C_PCA9543_ADDR); -+ return 1; -+ } -+ -+ /* Read Ethernet MAC address from the U-Boot environment. */ -+ for (i = 0; i < 6; i++) { -+ env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0; -+ if (tmp) -+ tmp = (*end) ? end+1 : end; -+ } -+ -+ /* Read Ethernet MAC address from EEPROM. */ -+ if (read_mac_address(eeprom_enetaddr) == 0) { -+ if (memcmp(env_enetaddr, "\0\0\0\0\0\0", 6) != 0 && -+ memcmp(env_enetaddr, eeprom_enetaddr, 6) != 0) { -+ printf("\nWarning: MAC addresses don't match:\n"); -+ printf("\tHW MAC address: " -+ "%02X:%02X:%02X:%02X:%02X:%02X\n", -+ eeprom_enetaddr[0], eeprom_enetaddr[1], -+ eeprom_enetaddr[2], eeprom_enetaddr[3], -+ eeprom_enetaddr[4], eeprom_enetaddr[5]); -+ printf("\t\"ethaddr\" value: " -+ "%02X:%02X:%02X:%02X:%02X:%02X\n", -+ env_enetaddr[0], env_enetaddr[1], -+ env_enetaddr[2], env_enetaddr[3], -+ env_enetaddr[4], env_enetaddr[5]) ; -+ debug("### Set MAC addr from environment\n"); -+ memcpy(eeprom_enetaddr, env_enetaddr, 6); -+ } -+ if (!tmp) { -+ char ethaddr[20]; -+ -+ sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X", -+ eeprom_enetaddr[0], eeprom_enetaddr[1], -+ eeprom_enetaddr[2], eeprom_enetaddr[3], -+ eeprom_enetaddr[4], eeprom_enetaddr[5]) ; -+ debug("### Set environment from HW MAC addr = \"%s\"\n", -+ ethaddr); -+ setenv("ethaddr", ethaddr); -+ } -+ } -+ -+ if (!eth_hw_init()) { -+ printf("Ethernet init failed\n"); -+ } else { -+ printf("ETH PHY: %s\n", phy.name); -+ } -+ -+ /* On this platform, U-Boot is copied in RAM by the UBL, -+ * so we are always in the relocated state. */ -+ gd->flags |= GD_FLG_RELOC; -+ -+ return(0); -+} -+ -+int dram_init(void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return(0); -+} -diff --git a/board/davinci/sffsdr/u-boot.lds b/board/davinci/sffsdr/u-boot.lds -new file mode 100644 -index 0000000..a4fcd1a ---- /dev/null -+++ b/board/davinci/sffsdr/u-boot.lds -@@ -0,0 +1,52 @@ -+/* -+ * (C) Copyright 2002 -+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ */ -+ -+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -+OUTPUT_ARCH(arm) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x00000000; -+ . = ALIGN(4); -+ .text : -+ { -+ cpu/arm926ejs/start.o (.text) -+ *(.text) -+ } -+ . = ALIGN(4); -+ .rodata : { *(.rodata) } -+ . = ALIGN(4); -+ .data : { *(.data) } -+ . = ALIGN(4); -+ .got : { *(.got) } -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ . = ALIGN(4); -+ __bss_start = .; -+ .bss (NOLOAD) : { *(.bss) } -+ _end = .; -+} -diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h -index aaf2ea2..b347857 100644 ---- a/include/asm-arm/mach-types.h -+++ b/include/asm-arm/mach-types.h -@@ -1595,6 +1595,7 @@ extern unsigned int __machine_arch_type; - #define MACH_TYPE_P300 1602 - #define MACH_TYPE_XDACOMET 1603 - #define MACH_TYPE_DEXFLEX2 1604 -+#define MACH_TYPE_SFFSDR 1657 - - #ifdef CONFIG_ARCH_EBSA110 - # ifdef machine_arch_type -@@ -16500,6 +16501,18 @@ extern unsigned int __machine_arch_type; - # define machine_is_schmoogie() (0) - #endif - -+#ifdef CONFIG_MACH_SFFSDR -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SFFSDR -+# endif -+# define machine_is_sffsdr() (machine_arch_type == MACH_TYPE_SFFSDR) -+#else -+# define machine_is_sffsdr() (0) -+#endif -+ - #ifdef CONFIG_MACH_AZTOOL - # ifdef machine_arch_type - # undef machine_arch_type -diff --git a/include/configs/davinci_sffsdr.h b/include/configs/davinci_sffsdr.h -new file mode 100644 -index 0000000..897e9e5 ---- /dev/null -+++ b/include/configs/davinci_sffsdr.h -@@ -0,0 +1,148 @@ -+/* -+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> -+ * -+ * Copyright (C) 2008 Lyrtech <www.lyrtech.com> -+ * Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com> -+ * -+ * This program 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 -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+#include <asm/sizes.h> -+ -+/* Board */ -+#define SFFSDR -+#define CFG_NAND_LARGEPAGE -+#define CFG_USE_NAND -+/* SoC Configuration */ -+#define CONFIG_ARM926EJS /* arm926ejs CPU core */ -+#define CONFIG_SYS_CLK_FREQ 297000000 /* Arm Clock frequency */ -+#define CFG_TIMERBASE 0x01c21400 /* use timer 0 */ -+#define CFG_HZ_CLOCK 27000000 /* Timer Input clock freq */ -+#define CFG_HZ 1000 -+/* EEPROM definitions for Atmel 24LC64 EEPROM chip */ -+#define CFG_I2C_EEPROM_ADDR_LEN 2 -+#define CFG_I2C_EEPROM_ADDR 0x50 -+#define CFG_EEPROM_PAGE_WRITE_BITS 5 -+#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 20 -+/* Memory Info */ -+#define CFG_MALLOC_LEN (0x10000 + 256*1024) /* malloc() len */ -+#define CFG_GBL_DATA_SIZE 128 /* reserved for initial data */ -+#define CFG_MEMTEST_START 0x80000000 /* memtest start address */ -+#define CFG_MEMTEST_END 0x81000000 /* 16MB RAM test */ -+#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -+#define CONFIG_STACKSIZE (256*1024) /* regular stack */ -+#define PHYS_SDRAM_1 0x80000000 /* DDR Start */ -+#define PHYS_SDRAM_1_SIZE 0x08000000 /* DDR size 128MB */ -+#define DDR_4BANKS /* 4-bank DDR2 (128MB) */ -+/* Serial Driver info */ -+#define CFG_NS16550 -+#define CFG_NS16550_SERIAL -+#define CFG_NS16550_REG_SIZE 4 /* NS16550 register size */ -+#define CFG_NS16550_COM1 0x01c20000 /* Base address of UART0 */ -+#define CFG_NS16550_CLK 27000000 /* Input clock to NS16550 */ -+#define CONFIG_CONS_INDEX 1 /* use UART0 for console */ -+#define CONFIG_BAUDRATE 115200 /* Default baud rate */ -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+/* I2C Configuration */ -+#define CONFIG_HARD_I2C -+#define CONFIG_DRIVER_DAVINCI_I2C -+#define CFG_I2C_SPEED 80000 /* 100Kbps won't work, silicon bug */ -+#define CFG_I2C_SLAVE 10 /* Bogus, master-only in U-Boot */ -+/* Network & Ethernet Configuration */ -+#define CONFIG_DRIVER_TI_EMAC -+#define CONFIG_MII -+#define CONFIG_BOOTP_DEFAULT -+#define CONFIG_BOOTP_DNS -+#define CONFIG_BOOTP_DNS2 -+#define CONFIG_BOOTP_SEND_HOSTNAME -+#define CONFIG_NET_RETRY_COUNT 10 -+#define CONFIG_OVERWRITE_ETHADDR_ONCE -+/* Flash & Environment */ -+#undef CFG_ENV_IS_IN_FLASH -+#define CFG_NO_FLASH -+#define CFG_ENV_IS_IN_NAND /* U-Boot env in NAND Flash */ -+#define CFG_ENV_SECT_SIZE 2048 /* Env sector Size */ -+#define CFG_ENV_SIZE SZ_128K -+#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is loaded by a bootloader */ -+#define CONFIG_SKIP_RELOCATE_UBOOT /* to a proper address, init done */ -+#define CFG_NAND_BASE 0x02000000 -+#define CFG_NAND_HW_ECC -+#define CFG_MAX_NAND_DEVICE 1 /* Max number of NAND devices */ -+#define NAND_MAX_CHIPS 1 -+#define CFG_ENV_OFFSET 0x0 /* Block 0--not used by bootcode */ -+/* I2C switch definitions for PCA9543 chip */ -+#define CFG_I2C_PCA9543_ADDR 0x70 -+#define CFG_I2C_PCA9543_ADDR_LEN 0 /* Single register. */ -+#define CFG_I2C_PCA9543_ENABLE_CH0 0x01 /* Enable channel 0. */ -+/* U-Boot general configuration */ -+#undef CONFIG_USE_IRQ /* No IRQ/FIQ in U-Boot */ -+#define CONFIG_MISC_INIT_R -+#define CONFIG_BOOTDELAY 5 /* Autoboot after 5 seconds. */ -+#define CONFIG_BOOTFILE "uImage" /* Boot file name */ -+#define CFG_PROMPT "U-Boot > " /* Monitor Command Prompt */ -+#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */ -+#define CFG_PBSIZE \ -+ (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16) /* Print buffer size */ -+#define CFG_MAXARGS 16 /* max number of command args */ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -+#define CFG_LOAD_ADDR 0x80700000 /* Default Linux kernel -+ * load address. */ -+#define CONFIG_VERSION_VARIABLE -+#define CONFIG_AUTO_COMPLETE /* Won't work with hush so far, -+ * may be later */ -+#define CFG_HUSH_PARSER -+#define CFG_PROMPT_HUSH_PS2 "> " -+#define CONFIG_CMDLINE_EDITING -+#define CFG_LONGHELP -+#define CONFIG_CRC32_VERIFY -+#define CONFIG_MX_CYCLIC -+/* Linux Information */ -+#define LINUX_BOOT_PARAM_ADDR 0x80000100 -+#define CONFIG_CMDLINE_TAG -+#define CONFIG_SETUP_MEMORY_TAGS -+#define CONFIG_BOOTARGS \ -+ "mem=56M " \ -+ "console=ttyS0,115200n8 " \ -+ "root=/dev/nfs rw noinitrd ip=dhcp " \ -+ "nfsroot=${serverip}:/nfsroot/sffsdr " \ -+ "nwhwconf=device:eth0,hwaddr:${ethaddr}" -+#define CONFIG_BOOTCOMMAND \ -+ "nand read 87A00000 100000 300000;" \ -+ "bootelf 87A00000" -+/* U-Boot commands */ -+#include <config_cmd_default.h> -+#define CONFIG_CMD_ASKENV -+#define CONFIG_CMD_DHCP -+#define CONFIG_CMD_DIAG -+#define CONFIG_CMD_I2C -+#define CONFIG_CMD_MII -+#define CONFIG_CMD_PING -+#define CONFIG_CMD_SAVES -+#define CONFIG_CMD_NAND -+#define CONFIG_CMD_EEPROM -+#undef CONFIG_CMD_BDI -+#undef CONFIG_CMD_FPGA -+#undef CONFIG_CMD_SETGETDCR -+#undef CONFIG_CMD_FLASH -+#undef CONFIG_CMD_IMLS -+/* KGDB support (if any) */ -+#ifdef CONFIG_CMD_KGDB -+#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -+#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -+#endif -+#endif /* __CONFIG_H */ - -------------------------------------------------------------------------- -Check out the new SourceForge.net Marketplace. -It's the best place to buy or sell services for -just about anything Open Source. -http://sourceforge.net/services/buy/index.php -_______________________________________________ -U-Boot-Users mailing list -U-Boot-Users@lists.sourceforge.net -https://lists.sourceforge.net/lists/listinfo/u-boot-users - diff --git a/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch b/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch deleted file mode 100644 index 3cecb7485d..0000000000 --- a/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch +++ /dev/null @@ -1,14 +0,0 @@ -This patch adds the hex-printing of the file size read by 'ext2load' -Index: u-boot.git/common/cmd_ext2.c -=================================================================== ---- u-boot.git.orig/common/cmd_ext2.c 2007-01-02 18:26:17.000000000 +0100 -+++ u-boot.git/common/cmd_ext2.c 2007-01-02 18:26:27.000000000 +0100 -@@ -279,7 +279,7 @@ - /* Loading ok, update default load address */ - load_addr = addr; - -- printf ("\n%ld bytes read\n", filelen); -+ printf ("\n%ld (0x%lx) bytes read\n", filelen, filelen); - sprintf(buf, "%lX", filelen); - setenv("filesize", buf); - diff --git a/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch b/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch deleted file mode 100644 index eca50615ad..0000000000 --- a/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: git/tools/Makefile -=================================================================== ---- git.orig/tools/Makefile 2008-03-03 13:32:32.000000000 +0800 -+++ git/tools/Makefile 2008-03-03 13:40:23.000000000 +0800 -@@ -208,18 +208,18 @@ - - $(obj)environment.c: - @rm -f $(obj)environment.c -- ln -s $(src)../common/environment.c $(obj)environment.c -+ ln -sf $(src)../common/environment.c $(obj)environment.c - - $(obj)environment.o: $(obj)environment.c - $(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $< - - $(obj)crc32.c: - @rm -f $(obj)crc32.c -- ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c -+ ln -sf $(src)../lib_generic/crc32.c $(obj)crc32.c - - $(obj)sha1.c: - @rm -f $(obj)sha1.c -- ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c -+ ln -sf $(src)../lib_generic/sha1.c $(obj)sha1.c - - $(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) - $(obj)./bmp_logo $(LOGO_BMP) >$@ diff --git a/recipes/u-boot/files/uboot-eabi-fix-HACK.patch b/recipes/u-boot/files/uboot-eabi-fix-HACK.patch deleted file mode 100644 index 65b212917d..0000000000 --- a/recipes/u-boot/files/uboot-eabi-fix-HACK.patch +++ /dev/null @@ -1,197 +0,0 @@ -Index: git/lib_arm/div0.c -=================================================================== ---- git.orig/lib_arm/div0.c -+++ git/lib_arm/div0.c -@@ -22,9 +22,3 @@ - */ - - /* Replacement (=dummy) for GNU/Linux division-by zero handler */ --void __div0 (void) --{ -- extern void hang (void); -- -- hang(); --} -Index: git/board/neo1973/common/bootmenu.c -=================================================================== ---- git.orig/board/neo1973/common/bootmenu.c -+++ git/board/neo1973/common/bootmenu.c -@@ -118,3 +118,14 @@ void neo1973_bootmenu(void) - bootmenu_add("Factory reset", factory_reset, NULL); - bootmenu(); - } -+ -+void raise() -+{ -+ serial_printf( "*** something's wrong... please reset ***\n" ); -+} -+ -+void abort() -+{ -+ serial_printf( "*** something's wrong... please reset ***\n" ); -+} -+ -Index: git/board/neo1973/gta01/u-boot.lds -=================================================================== ---- git.orig/board/neo1973/gta01/u-boot.lds -+++ git/board/neo1973/gta01/u-boot.lds -@@ -39,6 +39,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/neo1973/gta02/u-boot.lds -=================================================================== ---- git.orig/board/neo1973/gta02/u-boot.lds -+++ git/board/neo1973/gta02/u-boot.lds -@@ -39,6 +39,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/neo1973/common/lowlevel_foo.lds -=================================================================== ---- git.orig/board/neo1973/common/lowlevel_foo.lds -+++ git/board/neo1973/common/lowlevel_foo.lds -@@ -37,6 +37,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/hxd8/hxd8.c -=================================================================== ---- git.orig/board/hxd8/hxd8.c -+++ git/board/hxd8/hxd8.c -@@ -187,3 +187,6 @@ unsigned int dynpart_size[] = { - char *dynpart_names[] = { - "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; - -+void raise() {} -+ -+void abort() {} -Index: git/board/hxd8/u-boot.lds -=================================================================== ---- git.orig/board/hxd8/u-boot.lds -+++ git/board/hxd8/u-boot.lds -@@ -39,6 +39,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/hxd8/lowlevel_foo.lds -=================================================================== ---- git.orig/board/hxd8/lowlevel_foo.lds -+++ git/board/hxd8/lowlevel_foo.lds -@@ -37,6 +37,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/qt2410/qt2410.c -=================================================================== ---- git.orig/board/qt2410/qt2410.c -+++ git/board/qt2410/qt2410.c -@@ -156,3 +156,7 @@ unsigned int dynpart_size[] = { - char *dynpart_names[] = { - "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; - -+void raise() {} -+ -+void abort() {} -+ -Index: git/board/qt2410/u-boot.lds -=================================================================== ---- git.orig/board/qt2410/u-boot.lds -+++ git/board/qt2410/u-boot.lds -@@ -39,6 +39,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/Makefile -=================================================================== ---- git.orig/Makefile -+++ git/Makefile -@@ -225,7 +225,7 @@ LIBS := $(addprefix $(obj),$(LIBS)) - .PHONY : $(LIBS) - - # Add GCC lib --PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -+PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh - - # The "tools" are needed early, so put this first - # Don't include stuff already done in $(LIBS) -Index: git/board/smdk2440/smdk2440.c -=================================================================== ---- git.orig/board/smdk2440/smdk2440.c -+++ git/board/smdk2440/smdk2440.c -@@ -150,3 +150,6 @@ char *dynpart_names[] = { - "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; - - -+void raise() {} -+void abort() {} -+ -Index: git/board/smdk2440/u-boot.lds -=================================================================== ---- git.orig/board/smdk2440/u-boot.lds -+++ git/board/smdk2440/u-boot.lds -@@ -39,6 +39,10 @@ SECTIONS - - . = ALIGN(4); - .rodata : { *(.rodata) } -+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } -+ __exidx_start = .; -+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } -+ __exidx_end = .; - - . = ALIGN(4); - .data : { *(.data) } -Index: git/board/neo1973/gta02/gta02.c -=================================================================== ---- git.orig/board/neo1973/gta02/gta02.c -+++ git/board/neo1973/gta02/gta02.c -@@ -321,3 +321,7 @@ int neo1973_set_charge_mode(enum neo1973 - /* FIXME */ - return 0; - } -+ -+void raise() {} -+void abort() {} -+ diff --git a/recipes/u-boot/u-boot-1.2.0/uboot-qnap.diff b/recipes/u-boot/u-boot-1.2.0/uboot-qnap.diff deleted file mode 100644 index 2b2a17da7f..0000000000 --- a/recipes/u-boot/u-boot-1.2.0/uboot-qnap.diff +++ /dev/null @@ -1,1100 +0,0 @@ ---- u-boot-1.2.0.vanilla/board/qnap/config.mk 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/config.mk 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,35 @@ -+# -+# (C) Copyright 2000, 2001 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program 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 -+# -+# Valid values for TEXT_BASE are: -+# -+# Standard configuration -+# 0xFFF00000 boot from flash -+# -+# Standard configuration -+# 0xFFE60000 chain boot from flash -+# -+ -+ -+TEXT_BASE = 0xFFE60000 -+ -+PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) ---- u-boot-1.2.0.vanilla/board/qnap/ide.c 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/ide.c 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,67 @@ -+/* -+ * (C) Copyright 2000 -+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ */ -+ -+ #include <common.h> -+ -+#ifdef CFG_CMD_IDE -+#include <ata.h> -+#include <ide.h> -+#include <pci.h> -+ -+extern ulong ide_bus_offset[CFG_IDE_MAXBUS]; -+extern struct pci_controller hose; -+ -+int ide_preinit (void) -+{ -+ int status; -+ pci_dev_t devbusfn; -+ int l; -+ -+ status = 1; -+ for (l = 0; l < CFG_IDE_MAXBUS; l++) { -+ ide_bus_offset[l] = -ATA_STATUS; -+ } -+ devbusfn = pci_find_device (0x1095, 0x3512, 0); -+ -+ if (devbusfn != -1) { -+ -+ status = 0; -+ -+ pci_read_config_dword (devbusfn, PCI_BASE_ADDRESS_0, -+ (u32 *) &ide_bus_offset[0]); -+ ide_bus_offset[0] &= 0xfffffffe; -+ ide_bus_offset[0] = pci_hose_bus_to_phys(&hose, -+ ide_bus_offset[0] & 0xfffffffe, -+ PCI_REGION_IO); -+ -+ pci_read_config_dword (devbusfn, PCI_BASE_ADDRESS_2, -+ (u32 *) &ide_bus_offset[1]); -+ ide_bus_offset[1] &= 0xfffffffe; -+ ide_bus_offset[1] = pci_hose_bus_to_phys(&hose, -+ ide_bus_offset[1] & 0xfffffffe, -+ PCI_REGION_IO); -+ } -+ return (status); -+} -+ -+#endif /* of CONFIG_CMDS_IDE */ ---- u-boot-1.2.0.vanilla/board/qnap/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/Makefile 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,40 @@ -+# -+# (C) Copyright 2000 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program 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 -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = lib$(BOARD).a -+ -+OBJS = $(BOARD).o ide.o -+ -+$(LIB): .depend $(OBJS) -+ $(AR) crv $@ $(OBJS) -+ -+######################################################################### -+ -+.depend: Makefile $(OBJS:.o=.c) -+ $(CC) -M $(CFLAGS) $(OBJS:.o=.c) > $@ -+ -+sinclude .depend -+ -+######################################################################### ---- u-boot-1.2.0.vanilla/board/qnap/qnap.c 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/qnap.c 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,126 @@ -+/* -+ * Copyright (C) 2006 Andrew Luyten <u-boot@luyten.org.uk> -+ * -+ * Copyright (C) 2000 -+ * Rob Taylor, Flying Pig Systems. robt@flyingpig.com. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ * -+ */ -+ -+#include <common.h> -+#include <mpc824x.h> -+#include <pci.h> -+ -+int checkboard (void) -+{ -+ ulong busfreq = get_bus_freq(0); -+ char buf[32]; -+ -+ printf("Board: QNAP TS-101/TS-201 local bus at %s MHz\n", strmhz(buf, busfreq)); -+ return 0; -+} -+ -+ -+long int initdram (int board_type) -+{ -+ long size; -+ long new_bank0_end; -+ long mear1; -+ long emear1; -+ -+ size = get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE); -+ -+ new_bank0_end = size - 1; -+ mear1 = mpc824x_mpc107_getreg(MEAR1); -+ emear1 = mpc824x_mpc107_getreg(EMEAR1); -+ mear1 = (mear1 & 0xFFFFFF00) | -+ ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT); -+ emear1 = (emear1 & 0xFFFFFF00) | -+ ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT); -+ mpc824x_mpc107_setreg(MEAR1, mear1); -+ mpc824x_mpc107_setreg(EMEAR1, emear1); -+ -+ return (size); -+} -+ -+/* -+ * Initialize PCI Devices, report devices found. -+ */ -+#ifndef CONFIG_PCI_PNP -+ -+static struct pci_config_table pci_qnap_config_table[] = { -+ /* vendor, device, class */ -+ /* bus, dev, func */ -+ -+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, -+ PCI_ANY_ID, 0x0f, 0, /* RTL8110SC or Intel 82540EM */ -+ /* Gigabit ethernet controller */ -+ pci_cfgfunc_config_device, { PCI_ETH_IOADDR, -+ PCI_ETH_MEMADDR, -+ PCI_COMMAND_IO | -+ PCI_COMMAND_MEMORY | -+ PCI_COMMAND_MASTER }}, -+ -+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, -+ PCI_ANY_ID, 0x0d, 0, /* SII3512 */ -+ /* SATA controller */ -+ pci_cfgfunc_config_device, { PCI_IDE_IOADDR, -+ PCI_IDE_MEMADDR, -+ PCI_COMMAND_IO | -+ PCI_COMMAND_MEMORY | -+ PCI_COMMAND_MASTER }}, -+ -+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, -+ PCI_ANY_ID, 0x0e, 0, /* D720101 USB controller, 1st USB 1.1 */ -+ pci_cfgfunc_config_device, { PCI_USB0_IOADDR, -+ PCI_USB0_MEMADDR, -+ PCI_COMMAND_MEMORY | -+ PCI_COMMAND_MASTER }}, -+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, -+ PCI_ANY_ID, 0x0e, 1, /* D720101 USB controller, 2nd USB 1.1 */ -+ pci_cfgfunc_config_device, { PCI_USB1_IOADDR, -+ PCI_USB1_MEMADDR, -+ PCI_COMMAND_MEMORY | -+ PCI_COMMAND_MASTER }}, -+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, -+ PCI_ANY_ID, 0x0e, 2, /* D720101 USB controller, USB 2.0 */ -+ pci_cfgfunc_config_device, { PCI_USB2_IOADDR, -+ PCI_USB2_MEMADDR, -+ PCI_COMMAND_MEMORY | -+ PCI_COMMAND_MASTER }}, -+ { } -+}; -+#endif -+ -+struct pci_controller hose = { -+#ifndef CONFIG_PCI_PNP -+ config_table: pci_qnap_config_table, -+#endif -+}; -+ -+void pci_init_board(void) -+{ -+ pci_mpc824x_init(&hose); -+ -+ /* Reset USB 1.1 !/ -+ out_le32(PCI_USB0_MEMADDR+8, 1); -+ out_le32(PCI_USB1_MEMADDR+8, 1); -+ */ -+} ---- u-boot-1.2.0.vanilla/board/qnap/README 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/README 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,10 @@ -+*This port of U-Boot will run on a QNAP TS-101/TS-201 NAS* -+Andrew Luyten (u-boot@luyten.org.uk) -+ -+Adapted from a Linkstation port by Mihai Georgian -+http://http://www.linuxnotincluded.org.uk/ -+ -+Adapted from Motorola Sandpoint 3 development system equipped with -+a Unity X4 PPMC card (MPC8240 CPU) only. It is a snapshot of work -+in progress and far from being completed. -+Thomas Koeller ---- u-boot-1.2.0.vanilla/board/qnap/u-boot.lds 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-1.2.0/board/qnap/u-boot.lds 2007-02-26 01:55:37.000000000 +0100 -@@ -0,0 +1,136 @@ -+/* -+ * (C) Copyright 2001 -+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ */ -+ -+OUTPUT_ARCH(powerpc) -+SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib); -+/* Do we need any of these for elf? -+ __DYNAMIC = 0; */ -+SECTIONS -+{ -+ /* Read-only sections, merged into text segment: */ -+ . = + SIZEOF_HEADERS; -+ .interp : { *(.interp) } -+ .hash : { *(.hash) } -+ .dynsym : { *(.dynsym) } -+ .dynstr : { *(.dynstr) } -+ .rel.text : { *(.rel.text) } -+ .rela.text : { *(.rela.text) } -+ .rel.data : { *(.rel.data) } -+ .rela.data : { *(.rela.data) } -+ .rel.rodata : { *(.rel.rodata) } -+ .rela.rodata : { *(.rela.rodata) } -+ .rel.got : { *(.rel.got) } -+ .rela.got : { *(.rela.got) } -+ .rel.ctors : { *(.rel.ctors) } -+ .rela.ctors : { *(.rela.ctors) } -+ .rel.dtors : { *(.rel.dtors) } -+ .rela.dtors : { *(.rela.dtors) } -+ .rel.bss : { *(.rel.bss) } -+ .rela.bss : { *(.rela.bss) } -+ .rel.plt : { *(.rel.plt) } -+ .rela.plt : { *(.rela.plt) } -+ .init : { *(.init) } -+ .plt : { *(.plt) } -+ .text : -+ { -+ cpu/mpc824x/start.o (.text) -+ lib_ppc/board.o (.text) -+ lib_ppc/ppcstring.o (.text) -+ lib_generic/vsprintf.o (.text) -+ lib_generic/crc32.o (.text) -+ lib_generic/zlib.o (.text) -+ -+ . = DEFINED(env_offset) ? env_offset : .; -+ common/environment.o (.text) -+ -+ *(.text) -+ -+ *(.fixup) -+ *(.got1) -+ . = ALIGN(16); -+ *(.rodata) -+ *(.rodata1) -+ *(.rodata.str1.4) -+ *(.eh_frame) -+ } -+ .fini : { *(.fini) } =0 -+ .ctors : { *(.ctors) } -+ .dtors : { *(.dtors) } -+ -+ /* Read-write section, merged into data segment: */ -+ . = (. + 0x0FFF) & 0xFFFFF000; -+ _erotext = .; -+ PROVIDE (erotext = .); -+ .reloc : -+ { -+ *(.got) -+ _GOT2_TABLE_ = .; -+ *(.got2) -+ _FIXUP_TABLE_ = .; -+ *(.fixup) -+ } -+ __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; -+ __fixup_entries = (. - _FIXUP_TABLE_) >> 2; -+ -+ .data : -+ { -+ *(.data) -+ *(.data1) -+ *(.sdata) -+ *(.sdata2) -+ *(.dynamic) -+ CONSTRUCTORS -+ } -+ _edata = .; -+ PROVIDE (edata = .); -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ -+ . = .; -+ __start___ex_table = .; -+ __ex_table : { *(__ex_table) } -+ __stop___ex_table = .; -+ -+ . = ALIGN(4096); -+ __init_begin = .; -+ .text.init : { *(.text.init) } -+ .data.init : { *(.data.init) } -+ . = ALIGN(4096); -+ __init_end = .; -+ -+ __bss_start = .; -+ .bss : -+ { -+ *(.sbss) *(.scommon) -+ *(.dynbss) -+ *(.bss) -+ *(COMMON) -+ } -+ -+ _end = . ; -+ PROVIDE (end = .); -+} ---- u-boot-1.2.0.vanilla/cpu/mpc824x/cpu.c 2007-01-07 00:13:11.000000000 +0100 -+++ u-boot-1.2.0/cpu/mpc824x/cpu.c 2007-02-26 01:55:37.000000000 +0100 -@@ -44,7 +44,11 @@ - break; - - case CPU_TYPE_8245: -+#ifdef CONFIG_MPC8241 -+ puts ("MPC8241"); /* impossible to distinguish using chip registers */ -+#else - puts ("MPC8245"); -+#endif - break; - - default: ---- u-boot-1.2.0.vanilla/drivers/rtl8169.c 2007-01-07 00:13:11.000000000 +0100 -+++ u-boot-1.2.0/drivers/rtl8169.c 2007-02-26 01:55:37.000000000 +0100 -@@ -48,7 +48,10 @@ - * - * Indent Options: indent -kr -i8 - ***************************************************************************/ -- -+/* -+ * 26 August 2006 Mihai Georgian <u-boot@linuxnotincluded.org.uk> -+ * Modified to use le32_to_cpu and cpu_to_le32 properly -+ */ - #include <common.h> - #include <malloc.h> - #include <net.h> -@@ -68,6 +71,7 @@ - static u32 ioaddr; - - /* Condensed operations for readability. */ -+#define virt_to_bus(addr) cpu_to_le32(addr) - #define virt_to_le32desc(addr) cpu_to_le32(virt_to_bus(addr)) - #define le32desc_to_virt(addr) bus_to_virt(le32_to_cpu(addr)) - -@@ -247,8 +251,15 @@ - u8 version; /* depend on RTL8169 docs */ - u32 RxConfigMask; /* should clear the bits supported by this chip */ - } rtl_chip_info[] = { -- {"RTL-8169", 0x00, 0xff7e1880,}, -- {"RTL-8169", 0x04, 0xff7e1880,}, -+ {"RTL8169", 0x00, 0xff7e1880,}, -+ {"RTL8169s/8110s", 0x02, 0xff7e1880,}, -+ {"RTL8169s/8110s", 0x04, 0xff7e1880,}, -+ {"RTL8169sb/8110sb", 0x10, 0xff7e1880,}, -+ {"RTL8169sc/8110sc", 0x18, 0xff7e1880,}, -+ {"RTL8168b/8111sb", 0x30, 0xff7e1880,}, -+ {"RTL8168b/8111sb", 0x38, 0xff7e1880,}, -+ {"RTL8101e", 0x34, 0xff7e1880,}, -+ {"RTL8100e", 0x32, 0xff7e1880,}, - }; - - enum _DescStatusBit { -@@ -315,6 +326,7 @@ - - static struct pci_device_id supported[] = { - {PCI_VENDOR_ID_REALTEK, 0x8169}, -+ {PCI_VENDOR_ID_REALTEK, 0x8167}, - {} - }; - -@@ -383,13 +395,15 @@ - for (i = ARRAY_SIZE(rtl_chip_info) - 1; i >= 0; i--){ - if (tmp == rtl_chip_info[i].version) { - tpc->chipset = i; -+ printf ("%s... ", rtl_chip_info[i].name); - goto match; - } - } - - /* if unknown chip, assume array element #0, original RTL-8169 in this case */ - printf("PCI device %s: unknown chip version, assuming RTL-8169\n", dev->name); -- printf("PCI device: TxConfig = 0x%hX\n", (unsigned long) RTL_R32(TxConfig)); -+ printf("PCI device: TxConfig = 0x%lX\n", (unsigned long) RTL_R32(TxConfig)); -+ - tpc->chipset = 0; - - match: -@@ -413,23 +427,23 @@ - ioaddr = dev->iobase; - - cur_rx = tpc->cur_rx; -- if ((tpc->RxDescArray[cur_rx].status & OWNbit) == 0) { -- if (!(tpc->RxDescArray[cur_rx].status & RxRES)) { -+ if ((le32_to_cpu(tpc->RxDescArray[cur_rx].status) & OWNbit) == 0) { -+ if (!(le32_to_cpu(tpc->RxDescArray[cur_rx].status) & RxRES)) { - unsigned char rxdata[RX_BUF_LEN]; -- length = (int) (tpc->RxDescArray[cur_rx]. -- status & 0x00001FFF) - 4; -+ length = (int) (le32_to_cpu(tpc->RxDescArray[cur_rx]. -+ status) & 0x00001FFF) - 4; - - memcpy(rxdata, tpc->RxBufferRing[cur_rx], length); - NetReceive(rxdata, length); - - if (cur_rx == NUM_RX_DESC - 1) - tpc->RxDescArray[cur_rx].status = -- (OWNbit | EORbit) + RX_BUF_SIZE; -+ cpu_to_le32((OWNbit | EORbit) + RX_BUF_SIZE); - else - tpc->RxDescArray[cur_rx].status = -- OWNbit + RX_BUF_SIZE; -+ cpu_to_le32(OWNbit + RX_BUF_SIZE); - tpc->RxDescArray[cur_rx].buf_addr = -- virt_to_bus(tpc->RxBufferRing[cur_rx]); -+ cpu_to_le32((u32)tpc->RxBufferRing[cur_rx]); - } else { - puts("Error Rx"); - } -@@ -454,6 +468,7 @@ - u8 *ptxb; - int entry = tpc->cur_tx % NUM_TX_DESC; - u32 len = length; -+ int ret; - - #ifdef DEBUG_RTL8169_TX - int stime = currticks(); -@@ -465,39 +480,46 @@ - - /* point to the current txb incase multiple tx_rings are used */ - ptxb = tpc->Tx_skbuff[entry * MAX_ETH_FRAME_SIZE]; -+#ifdef DEBUG_RTL8169_TX -+ printf("ptxb: %08X, length: %d\n", ptxb, (int)length); -+#endif - memcpy(ptxb, (char *)packet, (int)length); - - while (len < ETH_ZLEN) - ptxb[len++] = '\0'; - -- tpc->TxDescArray[entry].buf_addr = virt_to_bus(ptxb); -+ tpc->TxDescArray[entry].buf_addr = cpu_to_le32((u32)ptxb); - if (entry != (NUM_TX_DESC - 1)) { - tpc->TxDescArray[entry].status = -- (OWNbit | FSbit | LSbit) | ((len > ETH_ZLEN) ? -- len : ETH_ZLEN); -+ cpu_to_le32((OWNbit | FSbit | LSbit) | -+ ((len > ETH_ZLEN) ? len : ETH_ZLEN)); - } else { - tpc->TxDescArray[entry].status = -- (OWNbit | EORbit | FSbit | LSbit) | -- ((len > ETH_ZLEN) ? length : ETH_ZLEN); -+ cpu_to_le32((OWNbit | EORbit | FSbit | LSbit) | -+ ((len > ETH_ZLEN) ? len : ETH_ZLEN)); - } - RTL_W8(TxPoll, 0x40); /* set polling bit */ - - tpc->cur_tx++; - to = currticks() + TX_TIMEOUT; -- while ((tpc->TxDescArray[entry].status & OWNbit) && (currticks() < to)); /* wait */ -+ while ((le32_to_cpu(tpc->TxDescArray[entry].status) & OWNbit) -+ && (currticks() < to)); /* wait */ - - if (currticks() >= to) { - #ifdef DEBUG_RTL8169_TX - puts ("tx timeout/error\n"); - printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime); - #endif -- return 0; -+ ret = 0; - } else { - #ifdef DEBUG_RTL8169_TX - puts("tx done\n"); - #endif -- return length; -+ ret = length; - } -+ /* Delay to make net console (nc) work properly */ -+ udelay(20); -+ return ret; - } - - static void rtl8169_set_rx_mode(struct eth_device *dev) -@@ -564,8 +586,8 @@ - - tpc->cur_rx = 0; - -- RTL_W32(TxDescStartAddr, virt_to_le32desc(tpc->TxDescArray)); -- RTL_W32(RxDescStartAddr, virt_to_le32desc(tpc->RxDescArray)); -+ RTL_W32(TxDescStartAddr, virt_to_le32desc((u32)tpc->TxDescArray)); -+ RTL_W32(RxDescStartAddr, virt_to_le32desc((u32)tpc->RxDescArray)); - RTL_W8(Cfg9346, Cfg9346_Lock); - udelay(10); - -@@ -603,13 +625,14 @@ - for (i = 0; i < NUM_RX_DESC; i++) { - if (i == (NUM_RX_DESC - 1)) - tpc->RxDescArray[i].status = -- (OWNbit | EORbit) + RX_BUF_SIZE; -+ cpu_to_le32((OWNbit | EORbit) + RX_BUF_SIZE); - else -- tpc->RxDescArray[i].status = OWNbit + RX_BUF_SIZE; -+ tpc->RxDescArray[i].status = -+ cpu_to_le32(OWNbit + RX_BUF_SIZE); - - tpc->RxBufferRing[i] = &rxb[i * RX_BUF_SIZE]; - tpc->RxDescArray[i].buf_addr = -- virt_to_bus(tpc->RxBufferRing[i]); -+ cpu_to_le32((u32)tpc->RxBufferRing[i]); - } - - #ifdef DEBUG_RTL8169 -@@ -620,7 +643,7 @@ - /************************************************************************** - RESET - Finish setting up the ethernet interface - ***************************************************************************/ --static void rtl_reset(struct eth_device *dev, bd_t *bis) -+static int rtl_reset(struct eth_device *dev, bd_t *bis) - { - int i; - u8 diff; -@@ -635,21 +658,27 @@ - if (tpc->TxDescArrays == 0) - puts("Allot Error"); - /* Tx Desscriptor needs 256 bytes alignment; */ -- TxPhyAddr = virt_to_bus(tpc->TxDescArrays); -+ TxPhyAddr = (u32)tpc->TxDescArrays; - diff = 256 - (TxPhyAddr - ((TxPhyAddr >> 8) << 8)); - TxPhyAddr += diff; - tpc->TxDescArray = (struct TxDesc *) (tpc->TxDescArrays + diff); -+#ifdef DEBUG_RTL8169 -+ printf("tpc->TxDescArray: %08X\n", tpc->TxDescArray); -+#endif - - tpc->RxDescArrays = rx_ring; - /* Rx Desscriptor needs 256 bytes alignment; */ -- RxPhyAddr = virt_to_bus(tpc->RxDescArrays); -+ RxPhyAddr = (u32)tpc->RxDescArrays; - diff = 256 - (RxPhyAddr - ((RxPhyAddr >> 8) << 8)); - RxPhyAddr += diff; - tpc->RxDescArray = (struct RxDesc *) (tpc->RxDescArrays + diff); -+#ifdef DEBUG_RTL8169 -+ printf("tpc->RxDescArray: %08X\n", tpc->RxDescArray); -+#endif - - if (tpc->TxDescArrays == NULL || tpc->RxDescArrays == NULL) { - puts("Allocate RxDescArray or TxDescArray failed\n"); -- return; -+ return 0; - } - - rtl8169_init_ring(dev); -@@ -669,6 +698,7 @@ - #ifdef DEBUG_RTL8169 - printf ("%s elapsed time : %d\n", __FUNCTION__, currticks()-stime); - #endif -+ return 1; - } - - /************************************************************************** -@@ -733,7 +763,7 @@ - - /* Get MAC address. FIXME: read EEPROM */ - for (i = 0; i < MAC_ADDR_LEN; i++) -- dev->enetaddr[i] = RTL_R8(MAC0 + i); -+ bis->bi_enetaddr[i] = dev->enetaddr[i] = RTL_R8(MAC0 + i); - - #ifdef DEBUG_RTL8169 - printf("MAC Address"); -@@ -814,17 +844,14 @@ - if (option & _1000bpsF) { - #ifdef DEBUG_RTL8169 - printf("%s: 1000Mbps Full-duplex operation.\n", -- dev->name); -+ dev->name); - #endif - } else { - #ifdef DEBUG_RTL8169 -- printf -- ("%s: %sMbps %s-duplex operation.\n", -- dev->name, -- (option & _100bps) ? "100" : -- "10", -- (option & FullDup) ? "Full" : -- "Half"); -+ printf("%s: %sMbps %s-duplex operation.\n", -+ dev->name, -+ (option & _100bps) ? "100" : "10", -+ (option & FullDup) ? "Full" : "Half"); - #endif - } - break; -@@ -886,3 +913,5 @@ - } - - #endif -+ -+/* vim: set ts=4: */ -Index: u-boot-1.2.0/include/configs/qnap.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ u-boot-1.2.0/include/configs/qnap.h 2007-04-07 21:56:55.376393000 +0200 -@@ -0,0 +1,363 @@ -+/* -+ * Copyright (C) 2006 Andrew Luyten <u-boot@luyten.org.uk> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program 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 -+ */ -+ -+/* ------------------------------------------------------------------------- */ -+ -+/* -+ * board/config.h - configuration options, board specific -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+ -+/* -+ * High Level Configuration Options -+ * (easy to change) -+ */ -+ -+#define CONFIG_MPC824X 1 -+#define CONFIG_MPC8245 1 -+#define CONFIG_MPC8241 1 -+ -+#define CONFIG_IDENT_STRING " OpenTS(c)" -+#define CONFIG_TIMESTAMP -+#define CFG_HUSH_PARSER 1 -+#define CFG_PROMPT_HUSH_PS2 "turbostation> " -+#define CONFIG_BOOTDELAY 3 -+ -+ -+/*---------------------------------------------------------------------- -+ * Define supported commands -+ */ -+ -+#define CONFIG_COMMANDS ( \ -+ CONFIG_CMD_DFL | \ -+ CFG_CMD_ELF | \ -+ CFG_CMD_I2C | \ -+ CFG_CMD_PING | \ -+ CFG_CMD_DHCP | \ -+ CFG_CMD_IDE | \ -+ CFG_CMD_EXT2 | \ -+ CFG_CMD_DATE | \ -+ CFG_CMD_PCI ) -+ -+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -+#include <cmd_confdefs.h> -+ -+ -+/*----------------------------------------------------------------------- -+ * Miscellaneous configurable options -+ */ -+ -+#define CFG_LONGHELP 1 /* undef to save memory */ -+#define CFG_PROMPT "=> " /* Monitor Command Prompt*/ -+#define CFG_CBSIZE 256 /* Console I/O Buffer Size*/ -+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size*/ -+#define CFG_MAXARGS 16 /* max number of command args*/ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size*/ -+#define CFG_LOAD_ADDR 0x00100000 /* default load address */ -+#define CFG_HZ 1000 /* decrementer freq:1 ms ticks*/ -+ -+ -+/*----------------------------------------------------------------------- -+ * PCI -+ * -+ */ -+ -+#define CONFIG_PCI -+#undef CONFIG_PCI_PNP -+ -+#define PCI_ETH_IOADDR 0xbffe00 -+#define PCI_ETH_MEMADDR 0xbfffce00 -+ -+#define PCI_IDE_IOADDR 0xbfffd0 -+#define PCI_IDE_MEMADDR 0xbffffe00 -+ -+#define PCI_USB0_IOADDR 0 -+#define PCI_USB0_MEMADDR 0xbfffe000 -+#define PCI_USB1_IOADDR 0 -+#define PCI_USB1_MEMADDR 0xbfffd000 -+#define PCI_USB2_IOADDR 0 -+#define PCI_USB2_MEMADDR 0xbfffcf00 -+ -+ -+/*----------------------------------------------------------------------- -+ * Start addresses for the final memory configuration -+ * (Set up by the startup code) -+ */ -+ -+#define CFG_SDRAM_BASE 0x00000000 -+#define CFG_MONITOR_BASE TEXT_BASE -+#undef CFG_RAMBOOT -+ -+#define CFG_PCI_MEM_ADDR 0xB0000000 -+#define CFG_EUMB_ADDR 0xFC000000 -+#define CFG_FLASH_BASE 0xFF000000 -+ -+#define CFG_RESET_ADDRESS 0xFFF00100 -+ -+#define CFG_MONITOR_LEN (256 << 10) -+#define CFG_MALLOC_LEN (512 << 10) -+ -+#define CFG_MEMTEST_START 0x00000000 /* memtest works on */ -+#define CFG_MEMTEST_END 0x04000000 /* 0 ... 32 MB in DRAM */ -+#define CFG_MAX_RAM_SIZE 0x10000000 /* up to 256M of SDRAM */ -+ -+ -+/*----------------------------------------------------------------------- -+ * Definitions for initial stack pointer and data area -+ */ -+ -+#define CFG_INIT_RAM_ADDR 0x40000000 -+#define CFG_INIT_RAM_END 0x1000 -+#define CFG_GBL_DATA_SIZE 128 -+#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) -+ -+ -+/*----------------------------------------------------------------------- -+ * FLASH organization -+ */ -+ -+#define CFG_FLASH_CFI 1 -+#define CFG_FLASH_CFI_DRIVER 1 /* Use the common driver */ -+#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -+#define CFG_MAX_FLASH_SECT 128 /* max number of sectors on one chip*/ -+#define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */ -+#define CFG_FLASH_USE_BUFFER_WRITE /* faster writes */ -+ -+#define CFG_ENV_IS_IN_FLASH 1 -+#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00EA0000) -+#define CFG_ENV_SECT_SIZE 0x00020000 /* Total Size of Environment Sector*/ -+ -+ -+/*----------------------------------------------------------------------- -+ * Gigabit Ethernet -+ */ -+ -+#define CONFIG_NET_MULTI -+#define CONFIG_RTL8169 -+ -+ -+/*----------------------------------------------------------------------- -+ * Filesystems -+ */ -+ -+#define CONFIG_MAC_PARTITION -+#define CONFIG_DOS_PARTITION -+//#define CONFIG_ISO_PARTITION -+ -+ -+/*----------------------------------------------------------------------- -+ * IDE/ATA -+ */ -+ -+#undef CONFIG_IDE_8xx_DIRECT /* no pcmcia interface required */ -+#undef CONFIG_IDE_LED /* no led for ide supported */ -+#undef CONFIG_IDE_RESET /* no reset for ide supported */ -+#undef CONFIG_ATAPI /* no ATAPI support */ -+ -+#define CONFIG_IDE_PREINIT /* To set up MMIO adresses */ -+#define CONFIG_LBA48 /* Large disk support */ -+ -+#define CFG_IDE_MAXBUS 2 /* Two channels x 1 device each */ -+#define CFG_IDE_MAXDEVICE (CFG_IDE_MAXBUS*1) -+ -+#define CFG_ATA_BASE_ADDR 0x0000 /* Set up in board specific code */ -+#define CFG_ATA_DATA_OFFSET 0x0000 /* Offset for data I/O */ -+#define CFG_ATA_REG_OFFSET 0x0000 /* Offset for normal register accesses */ -+#define CFG_ATA_ALT_OFFSET 0x0000 /* Offset for alternate registers */ -+ -+ -+/*---------------------------------------------------------------------- -+ * On Chip Serial configuration -+ */ -+ -+#define CONFIG_CONS_INDEX 1 -+#define CONFIG_BAUDRATE 115200 -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+ -+#define CFG_NS16550 -+#define CFG_NS16550_SERIAL -+ -+#define CFG_NS16550_REG_SIZE 1 -+#define CFG_NS16550_CLK get_bus_freq(0) -+ -+#define CFG_NS16550_COM1 (CFG_EUMB_ADDR + 0x4500) /* Console port */ -+#define CFG_NS16550_COM2 (CFG_EUMB_ADDR + 0x4600) /* PIC ? */ -+ -+ -+/*---------------------------------------------------------------------- -+ * i2c support configuration -+ */ -+ -+#define CONFIG_HARD_I2C 1 /* To enable I2C support */ -+#undef CONFIG_SOFT_I2C /* I2C bit-banged */ -+#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */ -+#define CFG_I2C_SLAVE 0x7F -+ -+#define CONFIG_RTC_RS5C372A /* Real-time clock chip */ -+ -+ -+/*---------------------------------------------------------------------- -+ * Low Level Configuration Settings -+ * (address mappings, register initial values, etc.) -+ * You should know what you are doing if you make changes here. -+ */ -+ -+#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */ -+ -+#define CFG_ROMNAL 7 /*rom/flash next access time */ -+#define CFG_ROMFAL 11 /*rom/flash access time */ -+ -+#define CFG_REFINT 430 /* no of clock cycles between CBR refresh cycles */ -+ -+/* the following are for SDRAM only*/ -+#define CFG_BSTOPRE 121 /* Burst To Precharge, sets open page interval */ -+#define CFG_REFREC 8 /* Refresh to activate interval */ -+#define CFG_RDLAT 4 /* data latency from read command */ -+#define CFG_PRETOACT 3 /* Precharge to activate interval */ -+#define CFG_ACTTOPRE 5 /* Activate to Precharge interval */ -+#define CFG_ACTORW 3 /* Activate to R/W */ -+#define CFG_SDMODE_CAS_LAT 3 /* SDMODE CAS latency */ -+#define CFG_SDMODE_WRAP 0 /* SDMODE wrap type */ -+ -+#define CFG_REGISTERD_TYPE_BUFFER 1 -+#define CFG_EXTROM 1 -+#define CFG_REGDIMM 0 -+ -+ -+/*---------------------------------------------------------------------- -+ * memory bank settings -+ * -+ * only bits 20-29 are actually used from these vales to set the -+ * start/end address the upper two bits will be 0, and the lower 20 -+ * bits will be set to 0x00000 for a start address, or 0xfffff for an -+ * end address -+ */ -+ -+#define CFG_BANK0_START 0x00000000 -+#define CFG_BANK0_END (CFG_MAX_RAM_SIZE - 1) -+#define CFG_BANK0_ENABLE 1 -+#define CFG_BANK1_START 0x3ff00000 -+#define CFG_BANK1_END 0x3fffffff -+#define CFG_BANK1_ENABLE 0 -+#define CFG_BANK2_START 0x3ff00000 -+#define CFG_BANK2_END 0x3fffffff -+#define CFG_BANK2_ENABLE 0 -+#define CFG_BANK3_START 0x3ff00000 -+#define CFG_BANK3_END 0x3fffffff -+#define CFG_BANK3_ENABLE 0 -+#define CFG_BANK4_START 0x00000000 -+#define CFG_BANK4_END 0x00000000 -+#define CFG_BANK4_ENABLE 0 -+#define CFG_BANK5_START 0x00000000 -+#define CFG_BANK5_END 0x00000000 -+#define CFG_BANK5_ENABLE 0 -+#define CFG_BANK6_START 0x00000000 -+#define CFG_BANK6_END 0x00000000 -+#define CFG_BANK6_ENABLE 0 -+#define CFG_BANK7_START 0x00000000 -+#define CFG_BANK7_END 0x00000000 -+#define CFG_BANK7_ENABLE 0 -+ -+ -+/* -+ * Memory bank enable bitmask, specifying which of the banks defined above -+ are actually present. MSB is for bank #7, LSB is for bank #0. -+ */ -+#define CFG_BANK_ENABLE 0x01 -+ -+#define CFG_ODCR 0xff /* configures line driver impedances, */ -+ /* see 8240 book for bit definitions */ -+#define CFG_PGMAX 0x32 /* how long the 8240 retains the */ -+ /* currently accessed page in memory */ -+ /* see 8240 book for details */ -+#define CFG_DBUS_SIZE2 1 -+#define CFG_BANK0_ROW 2 -+ -+ -+/*---------------------------------------------------------------------- -+ * Initial BAT mappings -+ */ -+ -+/* SDRAM 0 - 256MB */ -+#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE) -+#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP) -+ -+/* stack in DCACHE @ 1GB (no backing mem) */ -+#define CFG_IBAT1L (CFG_INIT_RAM_ADDR | BATL_PP_10 | BATL_MEMCOHERENCE) -+#define CFG_IBAT1U (CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP) -+ -+/* PCI memory */ -+#define CFG_IBAT2L (CFG_PCI_MEM_ADDR | BATL_PP_10 | BATL_CACHEINHIBIT) -+#define CFG_IBAT2U (CFG_PCI_MEM_ADDR | BATU_BL_256M | BATU_VS | BATU_VP) -+ -+/* Flash, config addrs, etc */ -+#define CFG_IBAT3L (0xF0000000 | BATL_PP_10 | BATL_CACHEINHIBIT) -+#define CFG_IBAT3U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP) -+ -+#define CFG_DBAT0L CFG_IBAT0L -+#define CFG_DBAT0U CFG_IBAT0U -+#define CFG_DBAT1L CFG_IBAT1L -+#define CFG_DBAT1U CFG_IBAT1U -+#define CFG_DBAT2L CFG_IBAT2L -+#define CFG_DBAT2U CFG_IBAT2U -+#define CFG_DBAT3L CFG_IBAT3L -+#define CFG_DBAT3U CFG_IBAT3U -+ -+/* -+ * For booting Linux, the board info and command line data -+ * have to be in the first 8 MB of memory, since this is -+ * the maximum mapped by the Linux kernel during initialization. -+ */ -+#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ -+ -+ -+/*----------------------------------------------------------------------- -+ * Cache Configuration -+ */ -+ -+#define CFG_CACHELINE_SIZE 32 /* For MPC8240 CPU */ -+#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -+# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */ -+#endif -+ -+ -+/*----------------------------------------------------------------------- -+ * Internal Definitions -+ * -+ * Boot Flags -+ */ -+#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */ -+#define BOOTFLAG_WARM 0x02 /* Software reboot */ -+ -+/* pass open firmware flat tree */ -+#define CONFIG_OF_FLAT_TREE 1 -+ -+/* maximum size of the flat tree (8K) */ -+#define OF_FLAT_TREE_MAX_SIZE 8192 -+ -+#define OF_CPU "PowerPC,603e" -+#define OF_STDOUT_PATH "/soc10x/serial@fc004500" -+ -+#endif /* __CONFIG_H */ -+ ---- u-boot-1.2.0.vanilla/Makefile 2007-01-07 00:13:11.000000000 +0100 -+++ u-boot-1.2.0/Makefile 2007-02-26 01:55:37.000000000 +0100 -@@ -1296,6 +1296,9 @@ - PN62_config: unconfig - @$(MKCONFIG) $(@:_config=) ppc mpc824x pn62 - -+qnap_config: unconfig -+ @$(MKCONFIG) $(@:_config=) ppc mpc824x qnap -+ - Sandpoint8240_config: unconfig - @$(MKCONFIG) $(@:_config=) ppc mpc824x sandpoint - diff --git a/recipes/u-boot/u-boot-1.3.2/boc01/006-081205-EEPROM_INTERSIL.patch b/recipes/u-boot/u-boot-1.3.2/boc01/006-081205-EEPROM_INTERSIL.patch deleted file mode 100644 index 21d7cba1a3..0000000000 --- a/recipes/u-boot/u-boot-1.3.2/boc01/006-081205-EEPROM_INTERSIL.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: u-boot-1.3.2/include/configs/MPC8313ERDB.h -=================================================================== ---- u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h 2008-12-09 16:30:51.000000000 +0100 -+++ u-boot-1.3.2/include/configs/MPC8313ERDB.h 2008-12-09 16:31:01.000000000 +0100 -@@ -269,9 +269,9 @@ - */ - #define CONFIG_CMD_EEPROM - #define CFG_I2C_EEPROM_ADDR_LEN 2 /* 16-bit EEPROM address */ --#define CFG_I2C_EEPROM_ADDR 0x50 /* Atmel: AT24C256*/ -+#define CFG_I2C_EEPROM_ADDR 0x57 /* Intersil 12024 (eeprom)*/ - #define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10 /* 10ms of delay */ --#define CFG_EEPROM_PAGE_WRITE_BITS 6 /* 64-Byte Page Write Mode */ -+#define CFG_EEPROM_PAGE_WRITE_BITS 4 /* 16-Byte Page Write Mode */ - #define CFG_EEPROM_PAGE_WRITE_ENABLE - - /* TSEC */ diff --git a/recipes/u-boot/u-boot-1.3.2/mpc8313e-rdb-watchdog.patch b/recipes/u-boot/u-boot-1.3.2/mpc8313e-rdb-watchdog.patch deleted file mode 100644 index db92fea35c..0000000000 --- a/recipes/u-boot/u-boot-1.3.2/mpc8313e-rdb-watchdog.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: u-boot-1.3.2/include/configs/MPC8313ERDB.h -=================================================================== ---- u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h 2008-09-12 18:47:22.000000000 +0200 -+++ u-boot-1.3.2/include/configs/MPC8313ERDB.h 2008-09-12 18:48:11.000000000 +0200 -@@ -460,6 +460,10 @@ - HRCWH_BIG_ENDIAN |\ - HRCWH_LALE_NORMAL) - -+/* Watchdog */ -+#define CONFIG_WATCHDOG -+#define CFG_WATCHDOG_VALUE 0xFFFF -+ - /* System IO Config */ - #define CFG_SICRH (SICRH_TSOBI1 | SICRH_TSOBI2) /* RGMII */ - #define CFG_SICRL SICRL_USBDR /* Enable Internal USB Phy */ diff --git a/recipes/u-boot/u-boot-2009.01/u-boot-2009.01-exp-001-config.patch b/recipes/u-boot/u-boot-2009.01/u-boot-2009.01-exp-001-config.patch deleted file mode 100644 index f1c30aa1ba..0000000000 --- a/recipes/u-boot/u-boot-2009.01/u-boot-2009.01-exp-001-config.patch +++ /dev/null @@ -1,266 +0,0 @@ -diff -urN u-boot-2008.10-0rig//doc/README.at91 u-boot-2008.10/doc/README.at91 ---- u-boot-2008.10-0rig//doc/README.at91 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot-2008.10/doc/README.at91 2008-12-31 12:16:34.000000000 +0100 -@@ -0,0 +1,88 @@ -+Atmel AT91 Evaluation kits -+ -+http://atmel.com/dyn/products/tools.asp?family_id=605#1443 -+ -+------------------------------------------------------------------------------ -+AT91SAM9260EK -+------------------------------------------------------------------------------ -+ -+Memory map -+ 0x20000000 - 23FFFFFF SDRAM (64 MB) -+ 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J13) -+ 0xD0000000 - Dxxxxxxx Soldered Atmel Dataflash -+ -+Environment variables -+ -+ U-Boot environment variables can be stored at different places: -+ - Dataflash on SPI chip select 1 (default) -+ - Dataflash on SPI chip select 0 (dataflash card) -+ - Nand flash. -+ -+ You can choose your storage location at config step (here for at91sam9260ek) : -+ make at91sam9260ek_config - use data flash (spi cs1) (default) -+ make at91sam9260ek_nandflash_config - use nand flash -+ make at91sam9260ek_dataflash_cs0_config - use data flash (spi cs0) -+ make at91sam9260ek_dataflash_cs1_config - use data flash (spi cs1) -+ -+ -+------------------------------------------------------------------------------ -+AT91SAM9261EK -+------------------------------------------------------------------------------ -+ -+Memory map -+ 0x20000000 - 23FFFFFF SDRAM (64 MB) -+ 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash -+ 0xD0000000 - Dxxxxxxx Atmel Dataflash card (J22) -+ -+Environment variables -+ -+ U-Boot environment variables can be stored at different places: -+ - Dataflash on SPI chip select 0 (default) -+ - Dataflash on SPI chip select 3 (dataflash card) -+ - Nand flash. -+ -+ You can choose your storage location at config step (here for at91sam9260ek) : -+ make at91sam9261ek_config - use data flash (spi cs0) (default) -+ make at91sam9261ek_nandflash_config - use nand flash -+ make at91sam9261ek_dataflash_cs0_config - use data flash (spi cs0) -+ make at91sam9261ek_dataflash_cs3_config - use data flash (spi cs3) -+ -+ -+------------------------------------------------------------------------------ -+AT91SAM9263EK -+------------------------------------------------------------------------------ -+ -+Memory map -+ 0x20000000 - 23FFFFFF SDRAM (64 MB) -+ 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J9) -+ -+Environment variables -+ -+ U-Boot environment variables can be stored at different places: -+ - Dataflash on SPI chip select 0 (dataflash card) -+ - Nand flash. -+ -+ You can choose your storage location at config step (here for at91sam9260ek) : -+ make at91sam9263ek_config - use data flash (spi cs0) (default) -+ make at91sam9263ek_nandflash_config - use nand flash -+ make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) -+ -+ -+------------------------------------------------------------------------------ -+AT91SAM9RLEK -+------------------------------------------------------------------------------ -+ -+Memory map -+ 0x20000000 - 23FFFFFF SDRAM (64 MB) -+ 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash -+ -+Environment variables -+ -+ U-Boot environment variables can be stored at different places: -+ - Dataflash on SPI chip select 0 -+ - Nand flash. -+ -+ You can choose your storage location at config step (here for at91sam9260ek) : -+ make at91sam9263ek_config - use data flash (spi cs0) (default) -+ make at91sam9263ek_nandflash_config - use nand flash -+ make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) -diff -urN u-boot-2008.10-0rig//include/configs/at91sam9260ek.h u-boot-2008.10/include/configs/at91sam9260ek.h ---- u-boot-2008.10-0rig//include/configs/at91sam9260ek.h 2008-12-31 12:15:59.000000000 +0100 -+++ u-boot-2008.10/include/configs/at91sam9260ek.h 2008-12-31 12:16:34.000000000 +0100 -@@ -127,10 +127,6 @@ - #define CFG_MEMTEST_START PHYS_SDRAM - #define CFG_MEMTEST_END 0x23e00000 - --#undef CFG_USE_DATAFLASH_CS0 --#define CFG_USE_DATAFLASH_CS1 1 --#undef CFG_USE_NANDFLASH -- - #ifdef CFG_USE_DATAFLASH_CS0 - - /* bootstrap + u-boot + env + linux in dataflash on CS0 */ -diff -urN u-boot-2008.10-0rig//include/configs/at91sam9261ek.h u-boot-2008.10/include/configs/at91sam9261ek.h ---- u-boot-2008.10-0rig//include/configs/at91sam9261ek.h 2008-12-31 12:15:59.000000000 +0100 -+++ u-boot-2008.10/include/configs/at91sam9261ek.h 2008-12-31 12:16:34.000000000 +0100 -@@ -142,9 +142,6 @@ - #define CFG_MEMTEST_START PHYS_SDRAM - #define CFG_MEMTEST_END 0x23e00000 - --#define CFG_USE_DATAFLASH_CS0 1 --#undef CFG_USE_NANDFLASH -- - #ifdef CFG_USE_DATAFLASH_CS0 - - /* bootstrap + u-boot + env + linux in dataflash on CS0 */ -@@ -157,6 +154,20 @@ - #define CONFIG_BOOTARGS "console=ttyS0,115200 " \ - "root=/dev/mtdblock0 " \ - "mtdparts=at91_nand:-(root) " \ -+ "rw rootfstype=jffs2" -+ -+#elif CFG_USE_DATAFLASH_CS3 -+ -+/* bootstrap + u-boot + env + linux in dataflash on CS3 */ -+#define CFG_ENV_IS_IN_DATAFLASH 1 -+#define CFG_MONITOR_BASE (CFG_DATAFLASH_LOGIC_ADDR_CS3 + 0x8400) -+#define CFG_ENV_OFFSET 0x4200 -+#define CFG_ENV_ADDR (CFG_DATAFLASH_LOGIC_ADDR_CS3 + CFG_ENV_OFFSET) -+#define CFG_ENV_SIZE 0x4200 -+#define CONFIG_BOOTCOMMAND "cp.b 0xD0042000 0x22000000 0x210000; bootm" -+#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ -+ "root=/dev/mtdblock0 " \ -+ "mtdparts=at91_nand:-(root) " \ - "rw rootfstype=jffs2" - - #else /* CFG_USE_NANDFLASH */ -diff -urN u-boot-2008.10-0rig//include/configs/at91sam9263ek.h u-boot-2008.10/include/configs/at91sam9263ek.h ---- u-boot-2008.10-0rig//include/configs/at91sam9263ek.h 2008-12-31 12:15:59.000000000 +0100 -+++ u-boot-2008.10/include/configs/at91sam9263ek.h 2008-12-31 12:16:34.000000000 +0100 -@@ -148,9 +148,6 @@ - #define CFG_MEMTEST_START PHYS_SDRAM - #define CFG_MEMTEST_END 0x23e00000 - --#define CFG_USE_DATAFLASH 1 --#undef CFG_USE_NANDFLASH -- - #ifdef CFG_USE_DATAFLASH - - /* bootstrap + u-boot + env + linux in dataflash on CS0 */ -diff -urN u-boot-2008.10-0rig//include/configs/at91sam9rlek.h u-boot-2008.10/include/configs/at91sam9rlek.h ---- u-boot-2008.10-0rig//include/configs/at91sam9rlek.h 2008-12-31 12:15:59.000000000 +0100 -+++ u-boot-2008.10/include/configs/at91sam9rlek.h 2008-12-31 12:16:34.000000000 +0100 -@@ -117,9 +117,6 @@ - #define CFG_MEMTEST_START PHYS_SDRAM - #define CFG_MEMTEST_END 0x23e00000 - --#define CFG_USE_DATAFLASH 1 --#undef CFG_USE_NANDFLASH -- - #ifdef CFG_USE_DATAFLASH - - /* bootstrap + u-boot + env + linux in dataflash on CS0 */ -diff -urN u-boot-2008.10-0rig//Makefile u-boot-2008.10/Makefile ---- u-boot-2008.10-0rig//Makefile 2008-12-31 12:15:55.000000000 +0100 -+++ u-boot-2008.10/Makefile 2008-12-31 12:18:31.000000000 +0100 -@@ -2487,15 +2487,6 @@ - at91rm9200dk_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk atmel at91rm9200 - --at91sam9261ek_config : unconfig -- @$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91 -- --at91sam9263ek_config : unconfig -- @$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91 -- --at91sam9rlek_config : unconfig -- @$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91 -- - cmc_pu2_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200 - -@@ -2518,8 +2509,79 @@ - at91cap9adk_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm926ejs at91cap9adk atmel at91 - -+at91sam9260ek_nandflash_config \ -+at91sam9260ek_dataflash_cs0_config \ -+at91sam9260ek_dataflash_cs1_config \ - at91sam9260ek_config : unconfig -- @$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek atmel at91 -+ @if [ "$(findstring _nandflash,$@)" ] ; then \ -+ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in NAND FLASH" ; \ -+ elif [ "$(findstring dataflash_cs0,$@)" ] ; then \ -+ echo "#define CFG_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ -+ else \ -+ echo "#define CFG_USE_DATAFLASH_CS1 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \ -+ fi; -+ @$(MKCONFIG) -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91 -+ -+at91sam9xeek_nandflash_config \ -+at91sam9xeek_dataflash_cs0_config \ -+at91sam9xeek_dataflash_cs1_config \ -+at91sam9xeek_config : unconfig -+ @if [ "$(findstring _nandflash,$@)" ] ; then \ -+ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in NAND FLASH" ; \ -+ elif [ "$(findstring dataflash_cs0,$@)" ] ; then \ -+ echo "#define CFG_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ -+ else \ -+ echo "#define CFG_USE_DATAFLASH_CS1 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \ -+ fi; -+ @$(MKCONFIG) -n at91sam9xeek -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91 -+ -+at91sam9261ek_nandflash_config \ -+at91sam9261ek_dataflash_cs0_config \ -+at91sam9261ek_dataflash_cs3_config \ -+at91sam9261ek_config : unconfig -+ @if [ "$(findstring _nandflash,$@)" ] ; then \ -+ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in NAND FLASH" ; \ -+ elif [ "$(findstring dataflash_cs3,$@)" ] ; then \ -+ echo "#define CFG_USE_DATAFLASH_CS3 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS3" ; \ -+ else \ -+ echo "#define CFG_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ -+ fi; -+ @$(MKCONFIG) -a at91sam9261ek arm arm926ejs at91sam9261ek atmel at91 -+ -+at91sam9263ek_nandflash_config \ -+at91sam9263ek_dataflash_config \ -+at91sam9263ek_dataflash_cs0_config \ -+at91sam9263ek_config : unconfig -+ @if [ "$(findstring _nandflash,$@)" ] ; then \ -+ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in NAND FLASH" ; \ -+ else \ -+ echo "#define CFG_USE_DATAFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ -+ fi; -+ @$(MKCONFIG) -a at91sam9263ek arm arm926ejs at91sam9263ek atmel at91 -+ -+at91sam9rlek_nandflash_config \ -+at91sam9rlek_dataflash_config \ -+at91sam9rlek_dataflash_cs0_config \ -+at91sam9rlek_config : unconfig -+ @if [ "$(findstring _nandflash,$@)" ] ; then \ -+ echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in NAND FLASH" ; \ -+ else \ -+ echo "#define CFG_USE_DATAFLASH 1" >>$(obj)include/config.h ; \ -+ $(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \ -+ fi; -+ @$(MKCONFIG) -a at91sam9rlek arm arm926ejs at91sam9rlek atmel at91 - - ######################################################################## - ## ARM Integrator boards - see doc/README-integrator for more info. diff --git a/recipes/u-boot/u-boot-git/Cortex-A8-erratum-725233.diff b/recipes/u-boot/u-boot-git/Cortex-A8-erratum-725233.diff deleted file mode 100644 index 73f955b69a..0000000000 --- a/recipes/u-boot/u-boot-git/Cortex-A8-erratum-725233.diff +++ /dev/null @@ -1,45 +0,0 @@ -From: Siarhei Siamashka <siarhei.siamashka@gmail.com> -Date: Wed, 24 Feb 2010 04:56:36 +0000 (-0500) -Subject: OMAP3: workaround for ARM Cortex-A8 erratum 725233 -X-Git-Url: http://git.denx.de/?p=u-boot%2Fu-boot-arm.git;a=commitdiff_plain;h=42d97d08838d4e010d80c92ad1300c426320dd18 - -OMAP3: workaround for ARM Cortex-A8 erratum 725233 - -725233: PLD instructions executed with PLD data forwarding -enabled can result in a processor deadlock - -This deadlock can happen when NEON load instructions are used together -with cache preload instructions (PLD). The problematic conditions -can be triggered in-the-wild by NEON optimized functions from pixman -library (http://cgit.freedesktop.org/pixman), which perform dynamic -adjustment of prefetch distance. - -The workaround disables PLD data forwarding by setting PLD_FWD bit -in L2 Cache Auxiliary Control Register as recommended in ARM Cortex-A8 -errata list. - -The deadlock can only happen on r1pX revisions of Cortex-A8 (used in -OMAP34xx/OMAP35xx). Performance impact of the workaround is practically -non-existant. - -Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> -Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com> ---- - -diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c -index 2aa69b3..7b78fa4 100644 ---- a/cpu/arm_cortexa8/omap3/board.c -+++ b/cpu/arm_cortexa8/omap3/board.c -@@ -146,6 +146,12 @@ void setup_auxcr() - __asm__ __volatile__("orr r0, r0, #1 << 5"); - /* SMI instruction to call ROM Code API */ - __asm__ __volatile__(".word 0xE1600070"); -+ /* Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) */ -+ __asm__ __volatile__("mov r12, #0x2"); -+ __asm__ __volatile__("mrc p15, 1, r0, c9, c0, 2"); -+ __asm__ __volatile__("orr r0, r0, #1 << 27"); -+ /* SMI instruction to call ROM Code API */ -+ __asm__ __volatile__(".word 0xE1600070"); - __asm__ __volatile__("mov r0, %0":"=r"(i)); - __asm__ __volatile__("mov r12, %0":"=r"(j)); - } diff --git a/recipes/u-boot/u-boot-git/beagleboard/0040-BeagleBoard-Check-for-ramdisk-on-boot.patch b/recipes/u-boot/u-boot-git/beagleboard/0040-BeagleBoard-Check-for-ramdisk-on-boot.patch deleted file mode 100644 index c3ba38fc38..0000000000 --- a/recipes/u-boot/u-boot-git/beagleboard/0040-BeagleBoard-Check-for-ramdisk-on-boot.patch +++ /dev/null @@ -1,97 +0,0 @@ -From bfeec530621dd8b30d81917abe94c3c55eed0fba Mon Sep 17 00:00:00 2001 -From: Jason Kridner <jkridner@beagleboard.org> -Date: Wed, 2 Jun 2010 18:27:38 -0500 -Subject: [PATCH] BeagleBoard: Check for ramdisk on boot - -To simplify booting into various boot configurations, there is now a -test for an existing ramdisk.gz image if loading the boot script fails. - -Adding additional boot arguments can also be done using optargs. - -(cherry picked from commit e96988f27cfa51f353ae4f678c59445deb161c5e) - -Signed-off-by: Jason Kridner <jkridner@beagleboard.org> ---- - include/configs/omap3_beagle.h | 29 ++++++++++++++++++++++++++--- - 1 files changed, 26 insertions(+), 3 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index acca697..c2fc6ba 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -181,9 +181,12 @@ - #define CONFIG_BOOTDELAY 3 - - #define CONFIG_EXTRA_ENV_SETTINGS \ -- "loadaddr=0x82000000\0" \ -+ "loadaddr=0x80200000\0" \ -+ "rdaddr=0x81600000\0" \ - "usbtty=cdc_acm\0" \ - "console=ttyS2,115200n8\0" \ -+ "optargs=\0" \ -+ "bootscr=boot.scr\0" \ - "mpurate=500\0" \ - "buddy=none\0" \ - "vram=12M\0" \ -@@ -195,6 +198,7 @@ - "nandroot=/dev/mtdblock4 rw\0" \ - "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "vram=${vram} " \ -@@ -203,6 +207,7 @@ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "vram=${vram} " \ -@@ -210,7 +215,18 @@ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${nandroot} " \ - "rootfstype=${nandrootfstype}\0" \ -- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ -+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} ${bootscr}\0" \ -+ "ramargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ -+ "mpurate=${mpurate} " \ -+ "buddy=${buddy} "\ -+ "vram=${vram} " \ -+ "omapfb.mode=dvi:${dvimode} " \ -+ "omapdss.def_disp=${defaultdisplay} " \ -+ "root=/dev/ram0 rw ramdisk_size=65536 " \ -+ "initrd=${rdaddr},64M " \ -+ "rootfstype=\0" \ -+ "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source ${loadaddr}\0" \ - "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ -@@ -221,6 +237,9 @@ - "run nandargs; " \ - "nand read ${loadaddr} 280000 400000; " \ - "bootm ${loadaddr}\0" \ -+ "ramboot=echo Booting from ramdisk ...; " \ -+ "run ramargs; " \ -+ "bootm ${loadaddr}\0" \ - - #define CONFIG_BOOTCOMMAND \ - "if mmc init ${mmcdev}; then " \ -@@ -228,7 +247,11 @@ - "run bootscript; " \ - "else " \ - "if run loaduimage; then " \ -- "run mmcboot; " \ -+ "if run loadramdisk; then " \ -+ "run ramboot; " \ -+ "else " \ -+ "run mmcboot; " \ -+ "fi; " \ - "else run nandboot; " \ - "fi; " \ - "fi; " \ --- -1.5.6.4 - |