diff options
Diffstat (limited to 'Projects')
| -rw-r--r-- | Projects/MissleLauncher/ConfigDescriptor.c | 174 | ||||
| -rw-r--r-- | Projects/MissleLauncher/ConfigDescriptor.h | 69 | ||||
| -rw-r--r-- | Projects/MissleLauncher/Doxygen.conf | 1485 | ||||
| -rw-r--r-- | Projects/MissleLauncher/MissileLauncher.c | 346 | ||||
| -rw-r--r-- | Projects/MissleLauncher/MissileLauncher.h | 99 | ||||
| -rw-r--r-- | Projects/MissleLauncher/MissileLauncher.txt | 53 | ||||
| -rw-r--r-- | Projects/MissleLauncher/makefile | 733 | ||||
| -rw-r--r-- | Projects/makefile | 4 | 
8 files changed, 2 insertions, 2961 deletions
| diff --git a/Projects/MissleLauncher/ConfigDescriptor.c b/Projects/MissleLauncher/ConfigDescriptor.c deleted file mode 100644 index 29fa60ba38..0000000000 --- a/Projects/MissleLauncher/ConfigDescriptor.c +++ /dev/null @@ -1,174 +0,0 @@ -/*
 -             LUFA Library
 -     Copyright (C) Dean Camera, 2009.
 -              
 -  dean [at] fourwalledcubicle [dot] com
 -      www.fourwalledcubicle.com
 -*/
 -
 -/*
 -  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 -
 -  Permission to use, copy, modify, and distribute this software
 -  and its documentation for any purpose and without fee is hereby
 -  granted, provided that the above copyright notice appear in all
 -  copies and that both that the copyright notice and this
 -  permission notice and warranty disclaimer appear in supporting
 -  documentation, and that the name of the author not be used in
 -  advertising or publicity pertaining to distribution of the
 -  software without specific, written prior permission.
 -
 -  The author disclaim all warranties with regard to this
 -  software, including all implied warranties of merchantability
 -  and fitness.  In no event shall the author be liable for any
 -  special, indirect or consequential damages or any damages
 -  whatsoever resulting from loss of use, data or profits, whether
 -  in an action of contract, negligence or other tortious action,
 -  arising out of or in connection with the use or performance of
 -  this software.
 -*/
 -
 -/** \file
 - *
 - *  USB Device Configuration Descriptor processing routines, to determine the correct pipe configurations
 - *  needed to communication with an attached USB device. Descriptors are special  computer-readable structures
 - *  which the host requests upon device enumeration, to determine the device's capabilities and functions.
 - */
 -
 -#include "ConfigDescriptor.h"
 -
 -/** Reads and processes an attached device's descriptors, to determine compatibility and pipe configurations. This
 - *  routine will read in the entire configuration descriptor, and configure the hosts pipes to correctly communicate
 - *  with compatible devices.
 - *
 - *  This routine searches for a HID interface descriptor containing at least one Interrupt type IN endpoint.
 - *
 - *  \return An error code from the GenericHIDHost_GetConfigDescriptorDataCodes_t enum.
 - */
 -uint8_t ProcessConfigurationDescriptor(void)
 -{
 -	uint8_t* ConfigDescriptorData;
 -	uint16_t ConfigDescriptorSize;
 -	
 -	uint8_t  FoundEndpoints = 0;
 -	
 -	/* Get Configuration Descriptor size from the device */
 -	if (USB_GetDeviceConfigDescriptor(&ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful)
 -	  return ControlError;
 -	
 -	/* Ensure that the Configuration Descriptor isn't too large */
 -	if (ConfigDescriptorSize > MAX_CONFIG_DESCRIPTOR_SIZE)
 -	  return DescriptorTooLarge;
 -	  
 -	/* Allocate enough memory for the entire config descriptor */
 -	ConfigDescriptorData = alloca(ConfigDescriptorSize);
 -
 -	/* Retrieve the entire configuration descriptor into the allocated buffer */
 -	USB_GetDeviceConfigDescriptor(&ConfigDescriptorSize, ConfigDescriptorData);
 -	
 -	/* Validate returned data - ensure first entry is a configuration header descriptor */
 -	if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)
 -	  return InvalidConfigDataReturned;
 -	
 -	/* Get the HID interface from the configuration descriptor */
 -	if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,
 -	                              DComp_NextHIDInterface) != DESCRIPTOR_SEARCH_COMP_Found)
 -	{
 -		/* Descriptor not found, error out */
 -		return NoHIDInterfaceFound;
 -	}
 -
 -	while (FoundEndpoints != ((1 << HID_DATA_IN_PIPE) | (1 << HID_DATA_OUT_PIPE)))
 -	{
 -		/* Get the next HID interface's data endpoint descriptor */
 -		if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,
 -		                              DComp_NextInterfaceHIDDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
 -		{
 -			/* Not all HID devices have an OUT endpoint - if we've reached the end of the HID descriptor
 -			 * but only found the mandatory IN endpoint, it's safe to continue with the device enumeration */
 -			if (FoundEndpoints == (1 << HID_DATA_IN_PIPE))
 -			  break;
 -				
 -			/* Descriptor not found, error out */
 -			return NoEndpointFound;
 -		}
 -		
 -		/* Retrieve the endpoint address from the endpoint descriptor */
 -		USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Endpoint_t);
 -
 -		/* If the endpoint is a IN type endpoint */
 -		if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
 -		{
 -			/* Configure the HID data IN pipe */
 -			Pipe_ConfigurePipe(HID_DATA_IN_PIPE, EP_TYPE_INTERRUPT, PIPE_TOKEN_IN,
 -							   EndpointData->EndpointAddress, EndpointData->EndpointSize, PIPE_BANK_SINGLE);
 -
 -			Pipe_SetInfiniteINRequests();
 -			
 -			FoundEndpoints |= (1 << HID_DATA_IN_PIPE);
 -		}
 -		else
 -		{
 -			/* Configure the HID data OUT pipe */
 -			Pipe_ConfigurePipe(HID_DATA_OUT_PIPE, EP_TYPE_INTERRUPT, PIPE_TOKEN_OUT,
 -							   EndpointData->EndpointAddress, EndpointData->EndpointSize, PIPE_BANK_SINGLE);
 -			
 -			FoundEndpoints |= (1 << HID_DATA_OUT_PIPE);		
 -		}
 -	}
 -			
 -	/* Valid data found, return success */
 -	return SuccessfulConfigRead;
 -}
 -
 -/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
 - *  configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
 - *  descriptor processing if an incompatible descriptor configuration is found.
 - *
 - *  This comparator searches for the next Interface descriptor of the correct HID Class value.
 - *
 - *  \return A value from the DSEARCH_Return_ErrorCodes_t enum
 - */
 -uint8_t DComp_NextHIDInterface(void* CurrentDescriptor)
 -{
 -	/* Determine if the current descriptor is an interface descriptor */
 -	if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
 -	{
 -		/* Check the HID descriptor class and protocol, break out if correct class/protocol interface found */
 -		if (DESCRIPTOR_CAST(CurrentDescriptor, USB_Descriptor_Interface_t).Class == HID_CLASS)
 -		{
 -			/* Indicate that the descriptor being searched for has been found */
 -			return DESCRIPTOR_SEARCH_Found;
 -		}
 -	}
 -	
 -	/* Current descriptor does not match what this comparator is looking for */
 -	return DESCRIPTOR_SEARCH_NotFound;
 -}
 -
 -/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
 - *  configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
 - *  descriptor processing if an incompatible descriptor configuration is found.
 - *
 - *  This comparator searches for the next Endpoint descriptor inside the current interface descriptor,
 - *  aborting the search if another interface descriptor is found before the required endpoint.
 - *
 - *  \return A value from the DSEARCH_Return_ErrorCodes_t enum
 - */
 -uint8_t DComp_NextInterfaceHIDDataEndpoint(void* CurrentDescriptor)
 -{
 -	/* Determine the type of the current descriptor */
 -	if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)
 -	{
 -		/* Indicate that the descriptor being searched for has been found */
 -		return DESCRIPTOR_SEARCH_Found;
 -	}
 -	else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
 -	{
 -		/* Indicate that the search has failed prematurely and should be aborted */
 -		return DESCRIPTOR_SEARCH_Fail;
 -	}
 -
 -	/* Current descriptor does not match what this comparator is looking for */
 -	return DESCRIPTOR_SEARCH_NotFound;
 -}
 diff --git a/Projects/MissleLauncher/ConfigDescriptor.h b/Projects/MissleLauncher/ConfigDescriptor.h deleted file mode 100644 index 49bfdc6e7a..0000000000 --- a/Projects/MissleLauncher/ConfigDescriptor.h +++ /dev/null @@ -1,69 +0,0 @@ -/*
 -             LUFA Library
 -     Copyright (C) Dean Camera, 2009.
 -              
 -  dean [at] fourwalledcubicle [dot] com
 -      www.fourwalledcubicle.com
 -*/
 -
 -/*
 -  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 -
 -  Permission to use, copy, modify, and distribute this software
 -  and its documentation for any purpose and without fee is hereby
 -  granted, provided that the above copyright notice appear in all
 -  copies and that both that the copyright notice and this
 -  permission notice and warranty disclaimer appear in supporting
 -  documentation, and that the name of the author not be used in
 -  advertising or publicity pertaining to distribution of the
 -  software without specific, written prior permission.
 -
 -  The author disclaim all warranties with regard to this
 -  software, including all implied warranties of merchantability
 -  and fitness.  In no event shall the author be liable for any
 -  special, indirect or consequential damages or any damages
 -  whatsoever resulting from loss of use, data or profits, whether
 -  in an action of contract, negligence or other tortious action,
 -  arising out of or in connection with the use or performance of
 -  this software.
 -*/
 -
 -/** \file
 - *
 - *  Header file for ConfigDescriptor.c.
 - */
 -
 -#ifndef _CONFIGDESCRIPTOR_H_
 -#define _CONFIGDESCRIPTOR_H_
 -
 -	/* Includes: */
 -		#include <LUFA/Drivers/USB/USB.h>
 -		
 -		#include "MissileLauncher.h"
 -		
 -	/* Macros: */
 -		/** Interface Class value for the Human Interface Device class */
 -		#define HID_CLASS                 0x03
 -
 -		/** Maximum size of a device configuration descriptor which can be processed by the host, in bytes */
 -		#define MAX_CONFIG_DESCRIPTOR_SIZE  512
 -	
 -	/* Enums: */
 -		/** Enum for the possible return codes of the ProcessConfigurationDescriptor() function. */
 -		enum GenericHIDHost_GetConfigDescriptorDataCodes_t
 -		{
 -			SuccessfulConfigRead            = 0, /**< Configuration Descriptor was processed successfully */
 -			ControlError                    = 1, /**< A control request to the device failed to complete successfully */
 -			DescriptorTooLarge              = 2, /**< The device's Configuration Descriptor is too large to process */
 -			InvalidConfigDataReturned       = 3, /**< The device returned an invalid Configuration Descriptor */
 -			NoHIDInterfaceFound             = 4, /**< A compatible HID interface was not found in the device's Configuration Descriptor */
 -			NoEndpointFound                 = 5, /**< A compatible HID IN endpoint was not found in the device's HID interface */
 -		};	
 -
 -	/* Function Prototypes: */
 -		uint8_t ProcessConfigurationDescriptor(void);
 -
 -		uint8_t DComp_NextHIDInterface(void* CurrentDescriptor);
 -		uint8_t DComp_NextInterfaceHIDDataEndpoint(void* CurrentDescriptor);
 -
 -#endif
 diff --git a/Projects/MissleLauncher/Doxygen.conf b/Projects/MissleLauncher/Doxygen.conf deleted file mode 100644 index c40d4d99b1..0000000000 --- a/Projects/MissleLauncher/Doxygen.conf +++ /dev/null @@ -1,1485 +0,0 @@ -# Doxyfile 1.5.7.1
 -
 -# This file describes the settings to be used by the documentation system
 -# doxygen (www.doxygen.org) for a project
 -#
 -# All text after a hash (#) is considered a comment and will be ignored
 -# The format is:
 -#       TAG = value [value, ...]
 -# For lists items can also be appended using:
 -#       TAG += value [value, ...]
 -# Values that contain spaces should be placed between quotes (" ")
 -
 -#---------------------------------------------------------------------------
 -# Project related configuration options
 -#---------------------------------------------------------------------------
 -
 -# This tag specifies the encoding used for all characters in the config file 
 -# that follow. The default is UTF-8 which is also the encoding used for all 
 -# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
 -# iconv built into libc) for the transcoding. See 
 -# http://www.gnu.org/software/libiconv for the list of possible encodings.
 -
 -DOXYFILE_ENCODING      = UTF-8
 -
 -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 -# by quotes) that should identify the project.
 -
 -PROJECT_NAME           = "LUFA Library - Generic HID Host Demo"
 -
 -# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
 -# This could be handy for archiving the generated documentation or 
 -# if some version control system is used.
 -
 -PROJECT_NUMBER         = 0.0.0
 -
 -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 -# base path where the generated documentation will be put. 
 -# If a relative path is entered, it will be relative to the location 
 -# where doxygen was started. If left blank the current directory will be used.
 -
 -OUTPUT_DIRECTORY       = ./Documentation/
 -
 -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
 -# 4096 sub-directories (in 2 levels) under the output directory of each output 
 -# format and will distribute the generated files over these directories. 
 -# Enabling this option can be useful when feeding doxygen a huge amount of 
 -# source files, where putting all generated files in the same directory would 
 -# otherwise cause performance problems for the file system.
 -
 -CREATE_SUBDIRS         = YES
 -
 -# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
 -# documentation generated by doxygen is written. Doxygen will use this 
 -# information to generate all constant output in the proper language. 
 -# The default language is English, other supported languages are: 
 -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
 -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, 
 -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), 
 -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, 
 -# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, 
 -# Spanish, Swedish, and Ukrainian.
 -
 -OUTPUT_LANGUAGE        = English
 -
 -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
 -# include brief member descriptions after the members that are listed in 
 -# the file and class documentation (similar to JavaDoc). 
 -# Set to NO to disable this.
 -
 -BRIEF_MEMBER_DESC      = YES
 -
 -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
 -# the brief description of a member or function before the detailed description. 
 -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
 -# brief descriptions will be completely suppressed.
 -
 -REPEAT_BRIEF           = YES
 -
 -# This tag implements a quasi-intelligent brief description abbreviator 
 -# that is used to form the text in various listings. Each string 
 -# in this list, if found as the leading text of the brief description, will be 
 -# stripped from the text and the result after processing the whole list, is 
 -# used as the annotated text. Otherwise, the brief description is used as-is. 
 -# If left blank, the following values are used ("$name" is automatically 
 -# replaced with the name of the entity): "The $name class" "The $name widget" 
 -# "The $name file" "is" "provides" "specifies" "contains" 
 -# "represents" "a" "an" "the"
 -
 -ABBREVIATE_BRIEF       = "The $name class" \
 -                         "The $name widget" \
 -                         "The $name file" \
 -                         is \
 -                         provides \
 -                         specifies \
 -                         contains \
 -                         represents \
 -                         a \
 -                         an \
 -                         the
 -
 -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
 -# Doxygen will generate a detailed section even if there is only a brief 
 -# description.
 -
 -ALWAYS_DETAILED_SEC    = NO
 -
 -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
 -# inherited members of a class in the documentation of that class as if those 
 -# members were ordinary class members. Constructors, destructors and assignment 
 -# operators of the base classes will not be shown.
 -
 -INLINE_INHERITED_MEMB  = NO
 -
 -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
 -# path before files name in the file list and in the header files. If set 
 -# to NO the shortest path that makes the file name unique will be used.
 -
 -FULL_PATH_NAMES        = YES
 -
 -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
 -# can be used to strip a user-defined part of the path. Stripping is 
 -# only done if one of the specified strings matches the left-hand part of 
 -# the path. The tag can be used to show relative paths in the file list. 
 -# If left blank the directory from which doxygen is run is used as the 
 -# path to strip.
 -
 -STRIP_FROM_PATH        = 
 -
 -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
 -# the path mentioned in the documentation of a class, which tells 
 -# the reader which header file to include in order to use a class. 
 -# If left blank only the name of the header file containing the class 
 -# definition is used. Otherwise one should specify the include paths that 
 -# are normally passed to the compiler using the -I flag.
 -
 -STRIP_FROM_INC_PATH    = 
 -
 -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
 -# (but less readable) file names. This can be useful is your file systems 
 -# doesn't support long names like on DOS, Mac, or CD-ROM.
 -
 -SHORT_NAMES            = YES
 -
 -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
 -# will interpret the first line (until the first dot) of a JavaDoc-style 
 -# comment as the brief description. If set to NO, the JavaDoc 
 -# comments will behave just like regular Qt-style comments 
 -# (thus requiring an explicit @brief command for a brief description.)
 -
 -JAVADOC_AUTOBRIEF      = NO
 -
 -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
 -# interpret the first line (until the first dot) of a Qt-style 
 -# comment as the brief description. If set to NO, the comments 
 -# will behave just like regular Qt-style comments (thus requiring 
 -# an explicit \brief command for a brief description.)
 -
 -QT_AUTOBRIEF           = NO
 -
 -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
 -# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
 -# comments) as a brief description. This used to be the default behaviour. 
 -# The new default is to treat a multi-line C++ comment block as a detailed 
 -# description. Set this tag to YES if you prefer the old behaviour instead.
 -
 -MULTILINE_CPP_IS_BRIEF = NO
 -
 -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
 -# member inherits the documentation from any documented member that it 
 -# re-implements.
 -
 -INHERIT_DOCS           = YES
 -
 -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
 -# a new page for each member. If set to NO, the documentation of a member will 
 -# be part of the file/class/namespace that contains it.
 -
 -SEPARATE_MEMBER_PAGES  = NO
 -
 -# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
 -# Doxygen uses this value to replace tabs by spaces in code fragments.
 -
 -TAB_SIZE               = 4
 -
 -# This tag can be used to specify a number of aliases that acts 
 -# as commands in the documentation. An alias has the form "name=value". 
 -# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
 -# put the command \sideeffect (or @sideeffect) in the documentation, which 
 -# will result in a user-defined paragraph with heading "Side Effects:". 
 -# You can put \n's in the value part of an alias to insert newlines.
 -
 -ALIASES                = 
 -
 -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
 -# sources only. Doxygen will then generate output that is more tailored for C. 
 -# For instance, some of the names that are used will be different. The list 
 -# of all members will be omitted, etc.
 -
 -OPTIMIZE_OUTPUT_FOR_C  = YES
 -
 -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
 -# sources only. Doxygen will then generate output that is more tailored for 
 -# Java. For instance, namespaces will be presented as packages, qualified 
 -# scopes will look different, etc.
 -
 -OPTIMIZE_OUTPUT_JAVA   = NO
 -
 -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
 -# sources only. Doxygen will then generate output that is more tailored for 
 -# Fortran.
 -
 -OPTIMIZE_FOR_FORTRAN   = NO
 -
 -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
 -# sources. Doxygen will then generate output that is tailored for 
 -# VHDL.
 -
 -OPTIMIZE_OUTPUT_VHDL   = NO
 -
 -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
 -# to include (a tag file for) the STL sources as input, then you should 
 -# set this tag to YES in order to let doxygen match functions declarations and 
 -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
 -# func(std::string) {}). This also make the inheritance and collaboration 
 -# diagrams that involve STL classes more complete and accurate.
 -
 -BUILTIN_STL_SUPPORT    = NO
 -
 -# If you use Microsoft's C++/CLI language, you should set this option to YES to
 -# enable parsing support.
 -
 -CPP_CLI_SUPPORT        = NO
 -
 -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
 -# Doxygen will parse them like normal C++ but will assume all classes use public 
 -# instead of private inheritance when no explicit protection keyword is present.
 -
 -SIP_SUPPORT            = NO
 -
 -# For Microsoft's IDL there are propget and propput attributes to indicate getter 
 -# and setter methods for a property. Setting this option to YES (the default) 
 -# will make doxygen to replace the get and set methods by a property in the 
 -# documentation. This will only work if the methods are indeed getting or 
 -# setting a simple type. If this is not the case, or you want to show the 
 -# methods anyway, you should set this option to NO.
 -
 -IDL_PROPERTY_SUPPORT   = YES
 -
 -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
 -# tag is set to YES, then doxygen will reuse the documentation of the first 
 -# member in the group (if any) for the other members of the group. By default 
 -# all members of a group must be documented explicitly.
 -
 -DISTRIBUTE_GROUP_DOC   = NO
 -
 -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
 -# the same type (for instance a group of public functions) to be put as a 
 -# subgroup of that type (e.g. under the Public Functions section). Set it to 
 -# NO to prevent subgrouping. Alternatively, this can be done per class using 
 -# the \nosubgrouping command.
 -
 -SUBGROUPING            = YES
 -
 -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
 -# is documented as struct, union, or enum with the name of the typedef. So 
 -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
 -# with name TypeT. When disabled the typedef will appear as a member of a file, 
 -# namespace, or class. And the struct will be named TypeS. This can typically 
 -# be useful for C code in case the coding convention dictates that all compound 
 -# types are typedef'ed and only the typedef is referenced, never the tag name.
 -
 -TYPEDEF_HIDES_STRUCT   = NO
 -
 -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
 -# determine which symbols to keep in memory and which to flush to disk.
 -# When the cache is full, less often used symbols will be written to disk.
 -# For small to medium size projects (<1000 input files) the default value is 
 -# probably good enough. For larger projects a too small cache size can cause 
 -# doxygen to be busy swapping symbols to and from disk most of the time 
 -# causing a significant performance penality. 
 -# If the system has enough physical memory increasing the cache will improve the 
 -# performance by keeping more symbols in memory. Note that the value works on 
 -# a logarithmic scale so increasing the size by one will rougly double the 
 -# memory usage. The cache size is given by this formula: 
 -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
 -# corresponding to a cache size of 2^16 = 65536 symbols
 -
 -SYMBOL_CACHE_SIZE      = 0
 -
 -#---------------------------------------------------------------------------
 -# Build related configuration options
 -#---------------------------------------------------------------------------
 -
 -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
 -# documentation are documented, even if no documentation was available. 
 -# Private class members and static file members will be hidden unless 
 -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
 -
 -EXTRACT_ALL            = YES
 -
 -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
 -# will be included in the documentation.
 -
 -EXTRACT_PRIVATE        = YES
 -
 -# If the EXTRACT_STATIC tag is set to YES all static members of a file 
 -# will be included in the documentation.
 -
 -EXTRACT_STATIC         = YES
 -
 -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
 -# defined locally in source files will be included in the documentation. 
 -# If set to NO only classes defined in header files are included.
 -
 -EXTRACT_LOCAL_CLASSES  = YES
 -
 -# This flag is only useful for Objective-C code. When set to YES local 
 -# methods, which are defined in the implementation section but not in 
 -# the interface are included in the documentation. 
 -# If set to NO (the default) only methods in the interface are included.
 -
 -EXTRACT_LOCAL_METHODS  = NO
 -
 -# If this flag is set to YES, the members of anonymous namespaces will be 
 -# extracted and appear in the documentation as a namespace called 
 -# 'anonymous_namespace{file}', where file will be replaced with the base 
 -# name of the file that contains the anonymous namespace. By default 
 -# anonymous namespace are hidden.
 -
 -EXTRACT_ANON_NSPACES   = NO
 -
 -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
 -# undocumented members of documented classes, files or namespaces. 
 -# If set to NO (the default) these members will be included in the 
 -# various overviews, but no documentation section is generated. 
 -# This option has no effect if EXTRACT_ALL is enabled.
 -
 -HIDE_UNDOC_MEMBERS     = NO
 -
 -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
 -# undocumented classes that are normally visible in the class hierarchy. 
 -# If set to NO (the default) these classes will be included in the various 
 -# overviews. This option has no effect if EXTRACT_ALL is enabled.
 -
 -HIDE_UNDOC_CLASSES     = NO
 -
 -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
 -# friend (class|struct|union) declarations. 
 -# If set to NO (the default) these declarations will be included in the 
 -# documentation.
 -
 -HIDE_FRIEND_COMPOUNDS  = NO
 -
 -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
 -# documentation blocks found inside the body of a function. 
 -# If set to NO (the default) these blocks will be appended to the 
 -# function's detailed documentation block.
 -
 -HIDE_IN_BODY_DOCS      = NO
 -
 -# The INTERNAL_DOCS tag determines if documentation 
 -# that is typed after a \internal command is included. If the tag is set 
 -# to NO (the default) then the documentation will be excluded. 
 -# Set it to YES to include the internal documentation.
 -
 -INTERNAL_DOCS          = NO
 -
 -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
 -# file names in lower-case letters. If set to YES upper-case letters are also 
 -# allowed. This is useful if you have classes or files whose names only differ 
 -# in case and if your file system supports case sensitive file names. Windows 
 -# and Mac users are advised to set this option to NO.
 -
 -CASE_SENSE_NAMES       = NO
 -
 -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
 -# will show members with their full class and namespace scopes in the 
 -# documentation. If set to YES the scope will be hidden.
 -
 -HIDE_SCOPE_NAMES       = NO
 -
 -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
 -# will put a list of the files that are included by a file in the documentation 
 -# of that file.
 -
 -SHOW_INCLUDE_FILES     = YES
 -
 -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
 -# is inserted in the documentation for inline members.
 -
 -INLINE_INFO            = YES
 -
 -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
 -# will sort the (detailed) documentation of file and class members 
 -# alphabetically by member name. If set to NO the members will appear in 
 -# declaration order.
 -
 -SORT_MEMBER_DOCS       = YES
 -
 -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
 -# brief documentation of file, namespace and class members alphabetically 
 -# by member name. If set to NO (the default) the members will appear in 
 -# declaration order.
 -
 -SORT_BRIEF_DOCS        = NO
 -
 -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
 -# hierarchy of group names into alphabetical order. If set to NO (the default) 
 -# the group names will appear in their defined order.
 -
 -SORT_GROUP_NAMES       = NO
 -
 -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
 -# sorted by fully-qualified names, including namespaces. If set to 
 -# NO (the default), the class list will be sorted only by class name, 
 -# not including the namespace part. 
 -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
 -# Note: This option applies only to the class list, not to the 
 -# alphabetical list.
 -
 -SORT_BY_SCOPE_NAME     = NO
 -
 -# The GENERATE_TODOLIST tag can be used to enable (YES) or 
 -# disable (NO) the todo list. This list is created by putting \todo 
 -# commands in the documentation.
 -
 -GENERATE_TODOLIST      = NO
 -
 -# The GENERATE_TESTLIST tag can be used to enable (YES) or 
 -# disable (NO) the test list. This list is created by putting \test 
 -# commands in the documentation.
 -
 -GENERATE_TESTLIST      = NO
 -
 -# The GENERATE_BUGLIST tag can be used to enable (YES) or 
 -# disable (NO) the bug list. This list is created by putting \bug 
 -# commands in the documentation.
 -
 -GENERATE_BUGLIST       = NO
 -
 -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
 -# disable (NO) the deprecated list. This list is created by putting 
 -# \deprecated commands in the documentation.
 -
 -GENERATE_DEPRECATEDLIST= YES
 -
 -# The ENABLED_SECTIONS tag can be used to enable conditional 
 -# documentation sections, marked by \if sectionname ... \endif.
 -
 -ENABLED_SECTIONS       = 
 -
 -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
 -# the initial value of a variable or define consists of for it to appear in 
 -# the documentation. If the initializer consists of more lines than specified 
 -# here it will be hidden. Use a value of 0 to hide initializers completely. 
 -# The appearance of the initializer of individual variables and defines in the 
 -# documentation can be controlled using \showinitializer or \hideinitializer 
 -# command in the documentation regardless of this setting.
 -
 -MAX_INITIALIZER_LINES  = 30
 -
 -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
 -# at the bottom of the documentation of classes and structs. If set to YES the 
 -# list will mention the files that were used to generate the documentation.
 -
 -SHOW_USED_FILES        = YES
 -
 -# If the sources in your project are distributed over multiple directories 
 -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
 -# in the documentation. The default is NO.
 -
 -SHOW_DIRECTORIES       = YES
 -
 -# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
 -# This will remove the Files entry from the Quick Index and from the 
 -# Folder Tree View (if specified). The default is YES.
 -
 -SHOW_FILES             = YES
 -
 -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
 -# Namespaces page.  This will remove the Namespaces entry from the Quick Index
 -# and from the Folder Tree View (if specified). The default is YES.
 -
 -SHOW_NAMESPACES        = YES
 -
 -# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
 -# doxygen should invoke to get the current version for each file (typically from 
 -# the version control system). Doxygen will invoke the program by executing (via 
 -# popen()) the command <command> <input-file>, where <command> is the value of 
 -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
 -# provided by doxygen. Whatever the program writes to standard output 
 -# is used as the file version. See the manual for examples.
 -
 -FILE_VERSION_FILTER    = 
 -
 -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by 
 -# doxygen. The layout file controls the global structure of the generated output files 
 -# in an output format independent way. The create the layout file that represents 
 -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a 
 -# file name after the option, if omitted DoxygenLayout.xml will be used as the name 
 -# of the layout file.
 -
 -LAYOUT_FILE            = 
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to warning and progress messages
 -#---------------------------------------------------------------------------
 -
 -# The QUIET tag can be used to turn on/off the messages that are generated 
 -# by doxygen. Possible values are YES and NO. If left blank NO is used.
 -
 -QUIET                  = YES
 -
 -# The WARNINGS tag can be used to turn on/off the warning messages that are 
 -# generated by doxygen. Possible values are YES and NO. If left blank 
 -# NO is used.
 -
 -WARNINGS               = YES
 -
 -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
 -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
 -# automatically be disabled.
 -
 -WARN_IF_UNDOCUMENTED   = YES
 -
 -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
 -# potential errors in the documentation, such as not documenting some 
 -# parameters in a documented function, or documenting parameters that 
 -# don't exist or using markup commands wrongly.
 -
 -WARN_IF_DOC_ERROR      = YES
 -
 -# This WARN_NO_PARAMDOC option can be abled to get warnings for 
 -# functions that are documented, but have no documentation for their parameters 
 -# or return value. If set to NO (the default) doxygen will only warn about 
 -# wrong or incomplete parameter documentation, but not about the absence of 
 -# documentation.
 -
 -WARN_NO_PARAMDOC       = YES
 -
 -# The WARN_FORMAT tag determines the format of the warning messages that 
 -# doxygen can produce. The string should contain the $file, $line, and $text 
 -# tags, which will be replaced by the file and line number from which the 
 -# warning originated and the warning text. Optionally the format may contain 
 -# $version, which will be replaced by the version of the file (if it could 
 -# be obtained via FILE_VERSION_FILTER)
 -
 -WARN_FORMAT            = "$file:$line: $text"
 -
 -# The WARN_LOGFILE tag can be used to specify a file to which warning 
 -# and error messages should be written. If left blank the output is written 
 -# to stderr.
 -
 -WARN_LOGFILE           = 
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the input files
 -#---------------------------------------------------------------------------
 -
 -# The INPUT tag can be used to specify the files and/or directories that contain 
 -# documented source files. You may enter file names like "myfile.cpp" or 
 -# directories like "/usr/src/myproject". Separate the files or directories 
 -# with spaces.
 -
 -INPUT                  = ./
 -
 -# This tag can be used to specify the character encoding of the source files 
 -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
 -# also the default input encoding. Doxygen uses libiconv (or the iconv built 
 -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
 -# the list of possible encodings.
 -
 -INPUT_ENCODING         = UTF-8
 -
 -# If the value of the INPUT tag contains directories, you can use the 
 -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
 -# and *.h) to filter out the source-files in the directories. If left 
 -# blank the following patterns are tested: 
 -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
 -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 -
 -FILE_PATTERNS          = *.h \
 -                         *.c \
 -						 *.txt
 -
 -# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
 -# should be searched for input files as well. Possible values are YES and NO. 
 -# If left blank NO is used.
 -
 -RECURSIVE              = YES
 -
 -# The EXCLUDE tag can be used to specify files and/or directories that should 
 -# excluded from the INPUT source files. This way you can easily exclude a 
 -# subdirectory from a directory tree whose root is specified with the INPUT tag.
 -
 -EXCLUDE                = Documentation/
 -
 -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
 -# directories that are symbolic links (a Unix filesystem feature) are excluded 
 -# from the input.
 -
 -EXCLUDE_SYMLINKS       = NO
 -
 -# If the value of the INPUT tag contains directories, you can use the 
 -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
 -# certain files from those directories. Note that the wildcards are matched 
 -# against the file with absolute path, so to exclude all test directories 
 -# for example use the pattern */test/*
 -
 -EXCLUDE_PATTERNS       = */LowLevel/USBMode.h
 -
 -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
 -# (namespaces, classes, functions, etc.) that should be excluded from the 
 -# output. The symbol name can be a fully qualified name, a word, or if the 
 -# wildcard * is used, a substring. Examples: ANamespace, AClass, 
 -# AClass::ANamespace, ANamespace::*Test
 -
 -EXCLUDE_SYMBOLS        = __*
 -
 -# The EXAMPLE_PATH tag can be used to specify one or more files or 
 -# directories that contain example code fragments that are included (see 
 -# the \include command).
 -
 -EXAMPLE_PATH           = 
 -
 -# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
 -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
 -# and *.h) to filter out the source-files in the directories. If left 
 -# blank all files are included.
 -
 -EXAMPLE_PATTERNS       = *
 -
 -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
 -# searched for input files to be used with the \include or \dontinclude 
 -# commands irrespective of the value of the RECURSIVE tag. 
 -# Possible values are YES and NO. If left blank NO is used.
 -
 -EXAMPLE_RECURSIVE      = NO
 -
 -# The IMAGE_PATH tag can be used to specify one or more files or 
 -# directories that contain image that are included in the documentation (see 
 -# the \image command).
 -
 -IMAGE_PATH             = 
 -
 -# The INPUT_FILTER tag can be used to specify a program that doxygen should 
 -# invoke to filter for each input file. Doxygen will invoke the filter program 
 -# by executing (via popen()) the command <filter> <input-file>, where <filter> 
 -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
 -# input file. Doxygen will then use the output that the filter program writes 
 -# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
 -# ignored.
 -
 -INPUT_FILTER           = 
 -
 -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
 -# basis.  Doxygen will compare the file name with each pattern and apply the 
 -# filter if there is a match.  The filters are a list of the form: 
 -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
 -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
 -# is applied to all files.
 -
 -FILTER_PATTERNS        = 
 -
 -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
 -# INPUT_FILTER) will be used to filter the input files when producing source 
 -# files to browse (i.e. when SOURCE_BROWSER is set to YES).
 -
 -FILTER_SOURCE_FILES    = NO
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to source browsing
 -#---------------------------------------------------------------------------
 -
 -# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
 -# be generated. Documented entities will be cross-referenced with these sources. 
 -# Note: To get rid of all source code in the generated output, make sure also 
 -# VERBATIM_HEADERS is set to NO.
 -
 -SOURCE_BROWSER         = NO
 -
 -# Setting the INLINE_SOURCES tag to YES will include the body 
 -# of functions and classes directly in the documentation.
 -
 -INLINE_SOURCES         = NO
 -
 -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
 -# doxygen to hide any special comment blocks from generated source code 
 -# fragments. Normal C and C++ comments will always remain visible.
 -
 -STRIP_CODE_COMMENTS    = YES
 -
 -# If the REFERENCED_BY_RELATION tag is set to YES 
 -# then for each documented function all documented 
 -# functions referencing it will be listed.
 -
 -REFERENCED_BY_RELATION = NO
 -
 -# If the REFERENCES_RELATION tag is set to YES 
 -# then for each documented function all documented entities 
 -# called/used by that function will be listed.
 -
 -REFERENCES_RELATION    = NO
 -
 -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
 -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
 -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
 -# link to the source code.  Otherwise they will link to the documentstion.
 -
 -REFERENCES_LINK_SOURCE = NO
 -
 -# If the USE_HTAGS tag is set to YES then the references to source code 
 -# will point to the HTML generated by the htags(1) tool instead of doxygen 
 -# built-in source browser. The htags tool is part of GNU's global source 
 -# tagging system (see http://www.gnu.org/software/global/global.html). You 
 -# will need version 4.8.6 or higher.
 -
 -USE_HTAGS              = NO
 -
 -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
 -# will generate a verbatim copy of the header file for each class for 
 -# which an include is specified. Set to NO to disable this.
 -
 -VERBATIM_HEADERS       = NO
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the alphabetical class index
 -#---------------------------------------------------------------------------
 -
 -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
 -# of all compounds will be generated. Enable this if the project 
 -# contains a lot of classes, structs, unions or interfaces.
 -
 -ALPHABETICAL_INDEX     = YES
 -
 -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
 -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
 -# in which this list will be split (can be a number in the range [1..20])
 -
 -COLS_IN_ALPHA_INDEX    = 5
 -
 -# In case all classes in a project start with a common prefix, all 
 -# classes will be put under the same header in the alphabetical index. 
 -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
 -# should be ignored while generating the index headers.
 -
 -IGNORE_PREFIX          = 
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the HTML output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
 -# generate HTML output.
 -
 -GENERATE_HTML          = YES
 -
 -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 -# put in front of it. If left blank `html' will be used as the default path.
 -
 -HTML_OUTPUT            = html
 -
 -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
 -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
 -# doxygen will generate files with .html extension.
 -
 -HTML_FILE_EXTENSION    = .html
 -
 -# The HTML_HEADER tag can be used to specify a personal HTML header for 
 -# each generated HTML page. If it is left blank doxygen will generate a 
 -# standard header.
 -
 -HTML_HEADER            = 
 -
 -# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
 -# each generated HTML page. If it is left blank doxygen will generate a 
 -# standard footer.
 -
 -HTML_FOOTER            = 
 -
 -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
 -# style sheet that is used by each HTML page. It can be used to 
 -# fine-tune the look of the HTML output. If the tag is left blank doxygen 
 -# will generate a default style sheet. Note that doxygen will try to copy 
 -# the style sheet file to the HTML output directory, so don't put your own 
 -# stylesheet in the HTML output directory as well, or it will be erased!
 -
 -HTML_STYLESHEET        = 
 -
 -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
 -# files or namespaces will be aligned in HTML using tables. If set to 
 -# NO a bullet list will be used.
 -
 -HTML_ALIGN_MEMBERS     = YES
 -
 -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
 -# documentation will contain sections that can be hidden and shown after the 
 -# page has loaded. For this to work a browser that supports 
 -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
 -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
 -
 -HTML_DYNAMIC_SECTIONS  = YES
 -
 -# If the GENERATE_DOCSET tag is set to YES, additional index files 
 -# will be generated that can be used as input for Apple's Xcode 3 
 -# integrated development environment, introduced with OSX 10.5 (Leopard). 
 -# To create a documentation set, doxygen will generate a Makefile in the 
 -# HTML output directory. Running make will produce the docset in that 
 -# directory and running "make install" will install the docset in 
 -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
 -# it at startup. 
 -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
 -
 -GENERATE_DOCSET        = NO
 -
 -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
 -# feed. A documentation feed provides an umbrella under which multiple 
 -# documentation sets from a single provider (such as a company or product suite) 
 -# can be grouped.
 -
 -DOCSET_FEEDNAME        = "Doxygen generated docs"
 -
 -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
 -# should uniquely identify the documentation set bundle. This should be a 
 -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
 -# will append .docset to the name.
 -
 -DOCSET_BUNDLE_ID       = org.doxygen.Project
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
 -# will be generated that can be used as input for tools like the 
 -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
 -# of the generated HTML documentation.
 -
 -GENERATE_HTMLHELP      = NO
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
 -# be used to specify the file name of the resulting .chm file. You 
 -# can add a path in front of the file if the result should not be 
 -# written to the html output directory.
 -
 -CHM_FILE               = 
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
 -# be used to specify the location (absolute path including file name) of 
 -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
 -# the HTML help compiler on the generated index.hhp.
 -
 -HHC_LOCATION           = 
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
 -# controls if a separate .chi index file is generated (YES) or that 
 -# it should be included in the master .chm file (NO).
 -
 -GENERATE_CHI           = NO
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
 -# is used to encode HtmlHelp index (hhk), content (hhc) and project file
 -# content.
 -
 -CHM_INDEX_ENCODING     = 
 -
 -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
 -# controls whether a binary table of contents is generated (YES) or a 
 -# normal table of contents (NO) in the .chm file.
 -
 -BINARY_TOC             = NO
 -
 -# The TOC_EXPAND flag can be set to YES to add extra items for group members 
 -# to the contents of the HTML help documentation and to the tree view.
 -
 -TOC_EXPAND             = YES
 -
 -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER 
 -# are set, an additional index file will be generated that can be used as input for 
 -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated 
 -# HTML documentation.
 -
 -GENERATE_QHP           = NO
 -
 -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
 -# be used to specify the file name of the resulting .qch file. 
 -# The path specified is relative to the HTML output folder.
 -
 -QCH_FILE               = 
 -
 -# The QHP_NAMESPACE tag specifies the namespace to use when generating 
 -# Qt Help Project output. For more information please see 
 -# <a href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
 -
 -QHP_NAMESPACE          = org.doxygen.Project
 -
 -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
 -# Qt Help Project output. For more information please see 
 -# <a href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
 -
 -QHP_VIRTUAL_FOLDER     = doc
 -
 -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
 -# be used to specify the location of Qt's qhelpgenerator. 
 -# If non-empty doxygen will try to run qhelpgenerator on the generated 
 -# .qhp file .
 -
 -QHG_LOCATION           = 
 -
 -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
 -# top of each HTML page. The value NO (the default) enables the index and 
 -# the value YES disables it.
 -
 -DISABLE_INDEX          = NO
 -
 -# This tag can be used to set the number of enum values (range [1..20]) 
 -# that doxygen will group on one line in the generated HTML documentation.
 -
 -ENUM_VALUES_PER_LINE   = 1
 -
 -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
 -# structure should be generated to display hierarchical information.
 -# If the tag value is set to FRAME, a side panel will be generated
 -# containing a tree-like index structure (just like the one that 
 -# is generated for HTML Help). For this to work a browser that supports 
 -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
 -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
 -# probably better off using the HTML help feature. Other possible values 
 -# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
 -# and Class Hierarchy pages using a tree view instead of an ordered list;
 -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
 -# disables this behavior completely. For backwards compatibility with previous
 -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
 -# respectively.
 -
 -GENERATE_TREEVIEW      = YES
 -
 -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
 -# used to set the initial width (in pixels) of the frame in which the tree 
 -# is shown.
 -
 -TREEVIEW_WIDTH         = 250
 -
 -# Use this tag to change the font size of Latex formulas included 
 -# as images in the HTML documentation. The default is 10. Note that 
 -# when you change the font size after a successful doxygen run you need 
 -# to manually remove any form_*.png images from the HTML output directory 
 -# to force them to be regenerated.
 -
 -FORMULA_FONTSIZE       = 10
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the LaTeX output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 -# generate Latex output.
 -
 -GENERATE_LATEX         = NO
 -
 -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 -# put in front of it. If left blank `latex' will be used as the default path.
 -
 -LATEX_OUTPUT           = latex
 -
 -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
 -# invoked. If left blank `latex' will be used as the default command name.
 -
 -LATEX_CMD_NAME         = latex
 -
 -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
 -# generate index for LaTeX. If left blank `makeindex' will be used as the 
 -# default command name.
 -
 -MAKEINDEX_CMD_NAME     = makeindex
 -
 -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
 -# LaTeX documents. This may be useful for small projects and may help to 
 -# save some trees in general.
 -
 -COMPACT_LATEX          = NO
 -
 -# The PAPER_TYPE tag can be used to set the paper type that is used 
 -# by the printer. Possible values are: a4, a4wide, letter, legal and 
 -# executive. If left blank a4wide will be used.
 -
 -PAPER_TYPE             = a4wide
 -
 -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
 -# packages that should be included in the LaTeX output.
 -
 -EXTRA_PACKAGES         = 
 -
 -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
 -# the generated latex document. The header should contain everything until 
 -# the first chapter. If it is left blank doxygen will generate a 
 -# standard header. Notice: only use this tag if you know what you are doing!
 -
 -LATEX_HEADER           = 
 -
 -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
 -# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
 -# contain links (just like the HTML output) instead of page references 
 -# This makes the output suitable for online browsing using a pdf viewer.
 -
 -PDF_HYPERLINKS         = YES
 -
 -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
 -# plain latex in the generated Makefile. Set this option to YES to get a 
 -# higher quality PDF documentation.
 -
 -USE_PDFLATEX           = YES
 -
 -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
 -# command to the generated LaTeX files. This will instruct LaTeX to keep 
 -# running if errors occur, instead of asking the user for help. 
 -# This option is also used when generating formulas in HTML.
 -
 -LATEX_BATCHMODE        = NO
 -
 -# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
 -# include the index chapters (such as File Index, Compound Index, etc.) 
 -# in the output.
 -
 -LATEX_HIDE_INDICES     = NO
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the RTF output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
 -# The RTF output is optimized for Word 97 and may not look very pretty with 
 -# other RTF readers or editors.
 -
 -GENERATE_RTF           = NO
 -
 -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 -# put in front of it. If left blank `rtf' will be used as the default path.
 -
 -RTF_OUTPUT             = rtf
 -
 -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
 -# RTF documents. This may be useful for small projects and may help to 
 -# save some trees in general.
 -
 -COMPACT_RTF            = NO
 -
 -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
 -# will contain hyperlink fields. The RTF file will 
 -# contain links (just like the HTML output) instead of page references. 
 -# This makes the output suitable for online browsing using WORD or other 
 -# programs which support those fields. 
 -# Note: wordpad (write) and others do not support links.
 -
 -RTF_HYPERLINKS         = NO
 -
 -# Load stylesheet definitions from file. Syntax is similar to doxygen's 
 -# config file, i.e. a series of assignments. You only have to provide 
 -# replacements, missing definitions are set to their default value.
 -
 -RTF_STYLESHEET_FILE    = 
 -
 -# Set optional variables used in the generation of an rtf document. 
 -# Syntax is similar to doxygen's config file.
 -
 -RTF_EXTENSIONS_FILE    = 
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the man page output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 -# generate man pages
 -
 -GENERATE_MAN           = NO
 -
 -# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 -# put in front of it. If left blank `man' will be used as the default path.
 -
 -MAN_OUTPUT             = man
 -
 -# The MAN_EXTENSION tag determines the extension that is added to 
 -# the generated man pages (default is the subroutine's section .3)
 -
 -MAN_EXTENSION          = .3
 -
 -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
 -# then it will generate one additional man file for each entity 
 -# documented in the real man page(s). These additional files 
 -# only source the real man page, but without them the man command 
 -# would be unable to find the correct page. The default is NO.
 -
 -MAN_LINKS              = NO
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the XML output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_XML tag is set to YES Doxygen will 
 -# generate an XML file that captures the structure of 
 -# the code including all documentation.
 -
 -GENERATE_XML           = NO
 -
 -# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 -# put in front of it. If left blank `xml' will be used as the default path.
 -
 -XML_OUTPUT             = xml
 -
 -# The XML_SCHEMA tag can be used to specify an XML schema, 
 -# which can be used by a validating XML parser to check the 
 -# syntax of the XML files.
 -
 -XML_SCHEMA             = 
 -
 -# The XML_DTD tag can be used to specify an XML DTD, 
 -# which can be used by a validating XML parser to check the 
 -# syntax of the XML files.
 -
 -XML_DTD                = 
 -
 -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
 -# dump the program listings (including syntax highlighting 
 -# and cross-referencing information) to the XML output. Note that 
 -# enabling this will significantly increase the size of the XML output.
 -
 -XML_PROGRAMLISTING     = YES
 -
 -#---------------------------------------------------------------------------
 -# configuration options for the AutoGen Definitions output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
 -# generate an AutoGen Definitions (see autogen.sf.net) file 
 -# that captures the structure of the code including all 
 -# documentation. Note that this feature is still experimental 
 -# and incomplete at the moment.
 -
 -GENERATE_AUTOGEN_DEF   = NO
 -
 -#---------------------------------------------------------------------------
 -# configuration options related to the Perl module output
 -#---------------------------------------------------------------------------
 -
 -# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
 -# generate a Perl module file that captures the structure of 
 -# the code including all documentation. Note that this 
 -# feature is still experimental and incomplete at the 
 -# moment.
 -
 -GENERATE_PERLMOD       = NO
 -
 -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
 -# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
 -# to generate PDF and DVI output from the Perl module output.
 -
 -PERLMOD_LATEX          = NO
 -
 -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
 -# nicely formatted so it can be parsed by a human reader.  This is useful 
 -# if you want to understand what is going on.  On the other hand, if this 
 -# tag is set to NO the size of the Perl module output will be much smaller 
 -# and Perl will parse it just the same.
 -
 -PERLMOD_PRETTY         = YES
 -
 -# The names of the make variables in the generated doxyrules.make file 
 -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
 -# This is useful so different doxyrules.make files included by the same 
 -# Makefile don't overwrite each other's variables.
 -
 -PERLMOD_MAKEVAR_PREFIX = 
 -
 -#---------------------------------------------------------------------------
 -# Configuration options related to the preprocessor   
 -#---------------------------------------------------------------------------
 -
 -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
 -# evaluate all C-preprocessor directives found in the sources and include 
 -# files.
 -
 -ENABLE_PREPROCESSING   = YES
 -
 -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
 -# names in the source code. If set to NO (the default) only conditional 
 -# compilation will be performed. Macro expansion can be done in a controlled 
 -# way by setting EXPAND_ONLY_PREDEF to YES.
 -
 -MACRO_EXPANSION        = YES
 -
 -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
 -# then the macro expansion is limited to the macros specified with the 
 -# PREDEFINED and EXPAND_AS_DEFINED tags.
 -
 -EXPAND_ONLY_PREDEF     = YES
 -
 -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
 -# in the INCLUDE_PATH (see below) will be search if a #include is found.
 -
 -SEARCH_INCLUDES        = YES
 -
 -# The INCLUDE_PATH tag can be used to specify one or more directories that 
 -# contain include files that are not input files but should be processed by 
 -# the preprocessor.
 -
 -INCLUDE_PATH           = 
 -
 -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
 -# patterns (like *.h and *.hpp) to filter out the header-files in the 
 -# directories. If left blank, the patterns specified with FILE_PATTERNS will 
 -# be used.
 -
 -INCLUDE_FILE_PATTERNS  = 
 -
 -# The PREDEFINED tag can be used to specify one or more macro names that 
 -# are defined before the preprocessor is started (similar to the -D option of 
 -# gcc). The argument of the tag is a list of macros of the form: name 
 -# or name=definition (no spaces). If the definition and the = are 
 -# omitted =1 is assumed. To prevent a macro definition from being 
 -# undefined via #undef or recursively expanded use the := operator 
 -# instead of the = operator.
 -
 -PREDEFINED             = __DOXYGEN__
 -
 -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
 -# this tag can be used to specify a list of macro names that should be expanded. 
 -# The macro definition that is found in the sources will be used. 
 -# Use the PREDEFINED tag if you want to use a different macro definition.
 -
 -EXPAND_AS_DEFINED      = BUTTLOADTAG
 -
 -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
 -# doxygen's preprocessor will remove all function-like macros that are alone 
 -# on a line, have an all uppercase name, and do not end with a semicolon. Such 
 -# function macros are typically used for boiler-plate code, and will confuse 
 -# the parser if not removed.
 -
 -SKIP_FUNCTION_MACROS   = YES
 -
 -#---------------------------------------------------------------------------
 -# Configuration::additions related to external references   
 -#---------------------------------------------------------------------------
 -
 -# The TAGFILES option can be used to specify one or more tagfiles. 
 -# Optionally an initial location of the external documentation 
 -# can be added for each tagfile. The format of a tag file without 
 -# this location is as follows: 
 -#   TAGFILES = file1 file2 ... 
 -# Adding location for the tag files is done as follows: 
 -#   TAGFILES = file1=loc1 "file2 = loc2" ... 
 -# where "loc1" and "loc2" can be relative or absolute paths or 
 -# URLs. If a location is present for each tag, the installdox tool 
 -# does not have to be run to correct the links.
 -# Note that each tag file must have a unique name
 -# (where the name does NOT include the path)
 -# If a tag file is not located in the directory in which doxygen 
 -# is run, you must also specify the path to the tagfile here.
 -
 -TAGFILES               = 
 -
 -# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
 -# a tag file that is based on the input files it reads.
 -
 -GENERATE_TAGFILE       = 
 -
 -# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
 -# in the class index. If set to NO only the inherited external classes 
 -# will be listed.
 -
 -ALLEXTERNALS           = NO
 -
 -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
 -# in the modules index. If set to NO, only the current project's groups will 
 -# be listed.
 -
 -EXTERNAL_GROUPS        = YES
 -
 -# The PERL_PATH should be the absolute path and name of the perl script 
 -# interpreter (i.e. the result of `which perl').
 -
 -PERL_PATH              = /usr/bin/perl
 -
 -#---------------------------------------------------------------------------
 -# Configuration options related to the dot tool   
 -#---------------------------------------------------------------------------
 -
 -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
 -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
 -# or super classes. Setting the tag to NO turns the diagrams off. Note that 
 -# this option is superseded by the HAVE_DOT option below. This is only a 
 -# fallback. It is recommended to install and use dot, since it yields more 
 -# powerful graphs.
 -
 -CLASS_DIAGRAMS         = NO
 -
 -# You can define message sequence charts within doxygen comments using the \msc 
 -# command. Doxygen will then run the mscgen tool (see 
 -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
 -# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
 -# the mscgen tool resides. If left empty the tool is assumed to be found in the 
 -# default search path.
 -
 -MSCGEN_PATH            = 
 -
 -# If set to YES, the inheritance and collaboration graphs will hide 
 -# inheritance and usage relations if the target is undocumented 
 -# or is not a class.
 -
 -HIDE_UNDOC_RELATIONS   = YES
 -
 -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
 -# available from the path. This tool is part of Graphviz, a graph visualization 
 -# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
 -# have no effect if this option is set to NO (the default)
 -
 -HAVE_DOT               = NO
 -
 -# By default doxygen will write a font called FreeSans.ttf to the output 
 -# directory and reference it in all dot files that doxygen generates. This 
 -# font does not include all possible unicode characters however, so when you need 
 -# these (or just want a differently looking font) you can specify the font name 
 -# using DOT_FONTNAME. You need need to make sure dot is able to find the font, 
 -# which can be done by putting it in a standard location or by setting the 
 -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 
 -# containing the font.
 -
 -DOT_FONTNAME           = FreeSans
 -
 -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
 -# The default size is 10pt.
 -
 -DOT_FONTSIZE           = 10
 -
 -# By default doxygen will tell dot to use the output directory to look for the 
 -# FreeSans.ttf font (which doxygen will put there itself). If you specify a 
 -# different font using DOT_FONTNAME you can set the path where dot 
 -# can find it using this tag.
 -
 -DOT_FONTPATH           = 
 -
 -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 -# will generate a graph for each documented class showing the direct and 
 -# indirect inheritance relations. Setting this tag to YES will force the 
 -# the CLASS_DIAGRAMS tag to NO.
 -
 -CLASS_GRAPH            = NO
 -
 -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 -# will generate a graph for each documented class showing the direct and 
 -# indirect implementation dependencies (inheritance, containment, and 
 -# class references variables) of the class with other documented classes.
 -
 -COLLABORATION_GRAPH    = NO
 -
 -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
 -# will generate a graph for groups, showing the direct groups dependencies
 -
 -GROUP_GRAPHS           = NO
 -
 -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
 -# collaboration diagrams in a style similar to the OMG's Unified Modeling 
 -# Language.
 -
 -UML_LOOK               = NO
 -
 -# If set to YES, the inheritance and collaboration graphs will show the 
 -# relations between templates and their instances.
 -
 -TEMPLATE_RELATIONS     = NO
 -
 -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
 -# tags are set to YES then doxygen will generate a graph for each documented 
 -# file showing the direct and indirect include dependencies of the file with 
 -# other documented files.
 -
 -INCLUDE_GRAPH          = NO
 -
 -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
 -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
 -# documented header file showing the documented files that directly or 
 -# indirectly include this file.
 -
 -INCLUDED_BY_GRAPH      = NO
 -
 -# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
 -# doxygen will generate a call dependency graph for every global function 
 -# or class method. Note that enabling this option will significantly increase 
 -# the time of a run. So in most cases it will be better to enable call graphs 
 -# for selected functions only using the \callgraph command.
 -
 -CALL_GRAPH             = NO
 -
 -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
 -# doxygen will generate a caller dependency graph for every global function 
 -# or class method. Note that enabling this option will significantly increase 
 -# the time of a run. So in most cases it will be better to enable caller 
 -# graphs for selected functions only using the \callergraph command.
 -
 -CALLER_GRAPH           = NO
 -
 -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
 -# will graphical hierarchy of all classes instead of a textual one.
 -
 -GRAPHICAL_HIERARCHY    = NO
 -
 -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
 -# then doxygen will show the dependencies a directory has on other directories 
 -# in a graphical way. The dependency relations are determined by the #include
 -# relations between the files in the directories.
 -
 -DIRECTORY_GRAPH        = NO
 -
 -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
 -# generated by dot. Possible values are png, jpg, or gif
 -# If left blank png will be used.
 -
 -DOT_IMAGE_FORMAT       = png
 -
 -# The tag DOT_PATH can be used to specify the path where the dot tool can be 
 -# found. If left blank, it is assumed the dot tool can be found in the path.
 -
 -DOT_PATH               = 
 -
 -# The DOTFILE_DIRS tag can be used to specify one or more directories that 
 -# contain dot files that are included in the documentation (see the 
 -# \dotfile command).
 -
 -DOTFILE_DIRS           = 
 -
 -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
 -# nodes that will be shown in the graph. If the number of nodes in a graph 
 -# becomes larger than this value, doxygen will truncate the graph, which is 
 -# visualized by representing a node as a red box. Note that doxygen if the 
 -# number of direct children of the root node in a graph is already larger than 
 -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
 -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 -
 -DOT_GRAPH_MAX_NODES    = 15
 -
 -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
 -# graphs generated by dot. A depth value of 3 means that only nodes reachable 
 -# from the root by following a path via at most 3 edges will be shown. Nodes 
 -# that lay further from the root node will be omitted. Note that setting this 
 -# option to 1 or 2 may greatly reduce the computation time needed for large 
 -# code bases. Also note that the size of a graph can be further restricted by 
 -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 -
 -MAX_DOT_GRAPH_DEPTH    = 2
 -
 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
 -# background. This is disabled by default, because dot on Windows does not 
 -# seem to support this out of the box. Warning: Depending on the platform used, 
 -# enabling this option may lead to badly anti-aliased labels on the edges of 
 -# a graph (i.e. they become hard to read).
 -
 -DOT_TRANSPARENT        = YES
 -
 -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
 -# files in one run (i.e. multiple -o and -T options on the command line). This 
 -# makes dot run faster, but since only newer versions of dot (>1.8.10) 
 -# support this, this feature is disabled by default.
 -
 -DOT_MULTI_TARGETS      = NO
 -
 -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
 -# generate a legend page explaining the meaning of the various boxes and 
 -# arrows in the dot generated graphs.
 -
 -GENERATE_LEGEND        = YES
 -
 -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
 -# remove the intermediate dot files that are used to generate 
 -# the various graphs.
 -
 -DOT_CLEANUP            = YES
 -
 -#---------------------------------------------------------------------------
 -# Configuration::additions related to the search engine   
 -#---------------------------------------------------------------------------
 -
 -# The SEARCHENGINE tag specifies whether or not a search engine should be 
 -# used. If set to NO the values of all tags below this one will be ignored.
 -
 -SEARCHENGINE           = NO
 diff --git a/Projects/MissleLauncher/MissileLauncher.c b/Projects/MissleLauncher/MissileLauncher.c deleted file mode 100644 index aefeb74758..0000000000 --- a/Projects/MissleLauncher/MissileLauncher.c +++ /dev/null @@ -1,346 +0,0 @@ -/*
 -             LUFA Library
 -     Copyright (C) Dean Camera, 2009.
 -              
 -  dean [at] fourwalledcubicle [dot] com
 -      www.fourwalledcubicle.com
 -*/
 -
 -/*
 -          USB Missle Launcher Demo
 -	 Copyright (C) Dave Fletcher, 2009.
 -	  fletch at fletchtronics dot net
 -	  
 -	 Based on research by Scott Weston at
 -	  http://code.google.com/p/pymissle
 - */
 -
 -/*
 -  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 -  Copyright 2009  Dave Fletcher (fletch [at] fletchtronics [dot] net)
 -
 -  Permission to use, copy, modify, and distribute this software
 -  and its documentation for any purpose and without fee is hereby
 -  granted, provided that the above copyright notice appear in all
 -  copies and that both that the copyright notice and this
 -  permission notice and warranty disclaimer appear in supporting
 -  documentation, and that the name of the author not be used in
 -  advertising or publicity pertaining to distribution of the
 -  software without specific, written prior permission.
 -
 -  The author disclaim all warranties with regard to this
 -  software, including all implied warranties of merchantability
 -  and fitness.  In no event shall the author be liable for any
 -  special, indirect or consequential damages or any damages
 -  whatsoever resulting from loss of use, data or profits, whether
 -  in an action of contract, negligence or other tortious action,
 -  arising out of or in connection with the use or performance of
 -  this software.
 -*/
 -
 -/*
 - *  Missle Launcher host. This is a host driver for the popular USB-controller table top toy missle launchers,
 - *  which can typically aim and fire small foam "missles" from a spring-loaded turret. This project controls the
 - *  launcher via a joystick and button to aim and fire missles at targets without a PC.
 - */
 -
 -/** \file
 - *
 - *  Main source file for the MissileLauncher application. This file contains the main tasks of
 - *  the application and is responsible for the initial application hardware configuration as well
 - *  as the sending of commands to the attached launcher toy.
 - */
 - 
 -#include "MissileLauncher.h"
 -
 -/** Launcher first init command report data sequence */
 -static const uint8_t CMD_INITA[8]     = {  85, 83, 66, 67,  0,  0,  4,  0  };
 -
 -/** Launcher second init command report data sequence */
 -static const uint8_t CMD_INITB[8]     = {  85, 83, 66, 67,  0, 64,  2,  0  };
 -
 -/** Launcher command report data sequence to stop all movement */
 -static const uint8_t CMD_STOP[8]      = {   0,  0,  0,  0,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move left */
 -static const uint8_t CMD_LEFT[8]      = {   0,  1,  0,  0,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move right */
 -static const uint8_t CMD_RIGHT[8]     = {   0,  0,  1,  0,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move up */
 -static const uint8_t CMD_UP[8]        = {   0,  0,  0,  1,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move down */
 -static const uint8_t CMD_DOWN[8]      = {   0,  0,  0,  0,  1,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move left and up */
 -static const uint8_t CMD_LEFTUP[8]    = {   0,  1,  0,  1,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move right and up */
 -static const uint8_t CMD_RIGHTUP[8]   = {   0,  0,  1,  1,  0,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move left and down */
 -static const uint8_t CMD_LEFTDOWN[8]  = {   0,  1,  0,  0,  1,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to move right and down */
 -static const uint8_t CMD_RIGHTDOWN[8] = {   0,  0,  1,  0,  1,  0,  8,  8  };
 -
 -/** Launcher command report data sequence to fire a missle */
 -static const uint8_t CMD_FIRE[8]      = {   0,  0,  0,  0,  0,  1,  8,  8  };
 -
 -/** Last command sent to the launcher, to determine what new command (if any) must be sent */
 -uint8_t* CmdState;
 -
 -/** Buffer to hold a command to send to the launcher */
 -uint8_t  CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE];
 -
 -
 -/** Main program entry point. This routine configures the hardware required by the application, then
 - *  starts the scheduler to run the application tasks.
 - */
 -int main(void)
 -{
 -	SetupHardware();
 -
 -	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
 -	
 -	CmdState = CMD_STOP;
 -
 -	for (;;)
 -	{
 -		Read_Joystick_Status();
 -	
 -		HID_Host_Task();
 -		USB_USBTask();
 -	}
 -}
 -
 -/** Configures the board hardware and chip peripherals for the demo's functionality. */
 -void SetupHardware(void)
 -{
 -	/* Disable watchdog if enabled by bootloader/fuses */
 -	MCUSR &= ~(1 << WDRF);
 -	wdt_disable();
 -
 -	/* Disable clock division */
 -	clock_prescale_set(clock_div_1);
 -
 -	/* Hardware Initialization */
 -	LEDs_Init();
 -	USB_Init();
 -	Joystick_Init();
 -	Buttons_Init();
 -}
 -
 -/** Reads the joystick and button status, sending commands to the launcher as needed. */
 -void Read_Joystick_Status(void)
 -{
 -	uint8_t JoyStatus_LCL = Joystick_GetStatus();
 -
 -	if (BUTTONS_BUTTON1 && Buttons_GetStatus())
 -	  Send_Command(CMD_FIRE);
 -	else if (JoyStatus_LCL & JOY_UP)
 -	  Send_Command(CMD_UP);
 -	else if (JoyStatus_LCL & JOY_DOWN)
 -	  Send_Command(CMD_DOWN);
 -	else if (JoyStatus_LCL & JOY_LEFT)
 -	  Send_Command(CMD_LEFT);
 -	else if (JoyStatus_LCL & JOY_RIGHT)
 -	  Send_Command(CMD_RIGHT);
 -	else if (CmdState != CMD_STOP)
 -	  Send_Command(CMD_STOP);
 -}
 -
 -/** Lower level send routine, copies report into a larger buffer and sends.
 - *
 - *  \param Report  Report data to send.
 - *  \param ReportSize  Report length in bytes.
 - */
 -void Send_Command_Report(uint8_t *Report, uint16_t ReportSize)
 -{
 -	memcpy(CmdBuffer, Report, 8);
 -	WriteNextReport(CmdBuffer, ReportSize);
 -}
 -
 -/** Send one of the CMD_* command constants listed above.
 - *
 - *  \param Command  One of the command constants.
 - */
 -void Send_Command(uint8_t* Command)
 -{
 -	if ((CmdState == CMD_STOP && Command != CMD_STOP) ||
 -		(CmdState != CMD_STOP && Command == CMD_STOP))
 -	{
 -		LEDs_ChangeLEDs(LEDS_LED4, ~LEDs_GetLEDs() & LEDS_LED4);
 -
 -		Send_Command_Report(CMD_INITA, 8);
 -		Send_Command_Report(CMD_INITB, 8);
 -		Send_Command_Report(Command, LAUNCHER_CMD_BUFFER_SIZE);
 -	}
 -	
 -	CmdState = Command;
 -}
 -
 -/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
 - *  starts the library USB task to begin the enumeration and USB management process.
 - */
 -void EVENT_USB_DeviceAttached(void)
 -{
 -	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
 -}
 -
 -/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
 - *  stops the library USB task management process.
 - */
 -void EVENT_USB_DeviceUnattached(void)
 -{
 -	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
 -}
 -
 -/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
 - *  enumerated by the host and is now ready to be used by the application.
 - */
 -void EVENT_USB_DeviceEnumerationComplete(void)
 -{
 -	LEDs_SetAllLEDs(LEDMASK_USB_READY);
 -}
 -
 -/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
 -void EVENT_USB_HostError(const uint8_t ErrorCode)
 -{
 -	USB_ShutDown();
 -
 -	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 -	for(;;);
 -}
 -
 -/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
 - *  enumerating an attached USB device.
 - */
 -void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode)
 -{
 -	LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 -}
 -
 -/** Reads in and discards the next report from the attached device. */
 -void DiscardNextReport(void)
 -{
 -	/* Select and unfreeze HID data IN pipe */
 -	Pipe_SelectPipe(HID_DATA_IN_PIPE);
 -	Pipe_Unfreeze();
 -
 -	/* Check to see if a packet has been received */
 -	if (!(Pipe_IsINReceived()))
 -	{
 -		/* Refreeze HID data IN pipe */
 -		Pipe_Freeze();
 -			
 -		return;
 -	}
 -		
 -	/* Clear the IN endpoint, ready for next data packet */
 -	Pipe_ClearIN();
 -	
 -	/* Refreeze HID data IN pipe */
 -	Pipe_Freeze();
 -}
 -
 -/** Writes a report to the attached device.
 - *
 - *  \param ReportOUTData  Buffer containing the report to send to the device
 - *  \param ReportLength  Length of the report to send
 - */
 -void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength)
 -{
 -	/* Select and unfreeze HID data OUT pipe */
 -	Pipe_SelectPipe(HID_DATA_OUT_PIPE);
 -	
 -	/* Not all HID devices have an OUT endpoint (some require OUT reports to be sent over the
 -	 * control endpoint instead) - check to see if the OUT endpoint has been initialized */
 -	if (Pipe_IsConfigured())
 -	{
 -		Pipe_Unfreeze();
 -
 -		/* Ensure pipe is ready to be written to before continuing */
 -		if (!(Pipe_IsOUTReady()))
 -		{
 -			/* Refreeze the data OUT pipe */
 -			Pipe_Freeze();
 -			
 -			return;
 -		}
 -		
 -		/* Write out HID report data */
 -		Pipe_Write_Stream_LE(ReportOUTData, ReportLength);				
 -			
 -		/* Clear the OUT endpoint, send last data packet */
 -		Pipe_ClearOUT();
 -
 -		/* Refreeze the data OUT pipe */
 -		Pipe_Freeze();
 -	}
 -	else
 -	{
 -		/* Class specific request to send a HID report to the device */
 -		USB_ControlRequest = (USB_Request_Header_t)
 -			{
 -				.bmRequestType = 0x21,
 -				.bRequest      = 0x09,
 -				.wValue        = 0x02,
 -				.wIndex        = 0x01,
 -				.wLength       = ReportLength,
 -			};
 -
 -		/* Select the control pipe for the request transfer */
 -		Pipe_SelectPipe(PIPE_CONTROLPIPE);
 -
 -		/* Send the request to the device */
 -		USB_Host_SendControlRequest(ReportOUTData);
 -	}
 -}
 -
 -/** Task to set the configuration of the attached device after it has been enumerated, and to read and process
 - *  HID reports from the device and to send reports if desired.
 - */
 -void HID_Host_Task(void)
 -{
 -	uint8_t ErrorCode;
 -
 -	/* Switch to determine what user-application handled host state the host state machine is in */
 -	switch (USB_HostState)
 -	{
 -		case HOST_STATE_Addressed:
 -			/* Get and process the configuration descriptor data */
 -			if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
 -			{
 -				/* Indicate error status */
 -				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 -
 -				/* Wait until USB device disconnected */
 -				while (USB_IsConnected);
 -				break;
 -			}
 -
 -			/* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
 -			if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
 -			{
 -				/* Indicate error status */
 -				LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 -				
 -				/* Wait until USB device disconnected */
 -				while (USB_IsConnected);
 -				break;
 -			}
 -			
 -			USB_HostState = HOST_STATE_Configured;
 -			break;
 -		case HOST_STATE_Configured:
 -			USB_HostState = HOST_STATE_Ready;
 -			break;
 -		case HOST_STATE_Ready:
 -			DiscardNextReport();
 -
 -			break;
 -	}
 -}
 diff --git a/Projects/MissleLauncher/MissileLauncher.h b/Projects/MissleLauncher/MissileLauncher.h deleted file mode 100644 index c6716354b1..0000000000 --- a/Projects/MissleLauncher/MissileLauncher.h +++ /dev/null @@ -1,99 +0,0 @@ -/*
 -             LUFA Library
 -     Copyright (C) Dean Camera, 2009.
 -              
 -  dean [at] fourwalledcubicle [dot] com
 -      www.fourwalledcubicle.com
 -*/
 -
 -/*
 -  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 -
 -  Permission to use, copy, modify, and distribute this software
 -  and its documentation for any purpose and without fee is hereby
 -  granted, provided that the above copyright notice appear in all
 -  copies and that both that the copyright notice and this
 -  permission notice and warranty disclaimer appear in supporting
 -  documentation, and that the name of the author not be used in
 -  advertising or publicity pertaining to distribution of the
 -  software without specific, written prior permission.
 -
 -  The author disclaim all warranties with regard to this
 -  software, including all implied warranties of merchantability
 -  and fitness.  In no event shall the author be liable for any
 -  special, indirect or consequential damages or any damages
 -  whatsoever resulting from loss of use, data or profits, whether
 -  in an action of contract, negligence or other tortious action,
 -  arising out of or in connection with the use or performance of
 -  this software.
 -*/
 -
 -/** \file
 - *
 - *  Header file for MissleLauncher.c.
 - */
 -
 -#ifndef _MISSLELAUNCHER_HOST_H_
 -#define _MISSLELAUNCHER_HOST_H_
 -
 -	/* Includes: */
 -		#include <avr/io.h>
 -		#include <avr/wdt.h>
 -		#include <avr/pgmspace.h>
 -		#include <avr/interrupt.h>
 -		#include <avr/power.h>
 -		#include <string.h>
 -		#include <stdio.h>
 -
 -		#include <LUFA/Version.h>
 -		#include <LUFA/Drivers/USB/USB.h>
 -		#include <LUFA/Drivers/Board/Buttons.h>
 -		#include <LUFA/Drivers/Board/Joystick.h>
 -		#include <LUFA/Drivers/Board/LEDs.h>
 -		
 -		#include "ConfigDescriptor.h"
 -		
 -	/* Macros: */
 -		/** Pipe number for the HID data IN pipe */
 -		#define HID_DATA_IN_PIPE                 1
 -		
 -		/** Pipe number for the HID data OUT pipe */
 -		#define HID_DATA_OUT_PIPE                2
 -
 -		/** HID Class specific request to send a HID report to the device. */
 -		#define REQ_SetReport                    0x09
 -
 -		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
 -		#define LEDMASK_USB_NOTREADY      LEDS_LED1
 -
 -		/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
 -		#define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
 -
 -		/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
 -		#define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
 -
 -		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
 -		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
 -		
 -		/** Size of the Launcher report command buffer */
 -		#define LAUNCHER_CMD_BUFFER_SIZE 64
 -		
 -	/* Function Prototypes: */
 -		void SetupHardware(void);
 -
 -		void Read_Joystick_Status(void);
 -        void Send_Command_Report(uint8_t* Report, uint16_t ReportSize);
 -        void Send_Command(uint8_t* Command);
 -
 -		void HID_Host_Task(void);
 -
 -		void EVENT_USB_HostError(const uint8_t ErrorCode);
 -		void EVENT_USB_DeviceAttached(void);
 -		void EVENT_USB_DeviceUnattached(void);
 -		void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode);
 -		void EVENT_USB_DeviceEnumerationComplete(void);
 -
 -		void DiscardNextReport(void);
 -		void WriteNextReport(uint8_t* ReportOUTData, uint16_t ReportLength);
 -		
 -#endif
 diff --git a/Projects/MissleLauncher/MissileLauncher.txt b/Projects/MissleLauncher/MissileLauncher.txt deleted file mode 100644 index d30d5ea7de..0000000000 --- a/Projects/MissleLauncher/MissileLauncher.txt +++ /dev/null @@ -1,53 +0,0 @@ -/** \file
 - *
 - *  This file contains special DoxyGen information for the generation of the main page and other special
 - *  documentation pages. It is not a project source file.
 - */
 - 
 -/** \mainpage Missle Launcher
 - *
 - *  \section SSec_Info USB Information:
 - *
 - *  The following table gives a rundown of the USB utilization of this demo.
 - *
 - *  <table>
 - *   <tr>
 - *    <td><b>USB Mode:</b></td>
 - *    <td>Host</td>
 - *   </tr>
 - *   <tr>
 - *    <td><b>USB Class:</b></td>
 - *    <td>Human Interface Device (HID)</td>
 - *   </tr>
 - *   <tr> 
 - *    <td><b>USB Subclass:</b></td>
 - *    <td>N/A</td>
 - *   </tr>
 - *   <tr>
 - *    <td><b>Relevant Standards:</b></td>
 - *    <td>USBIF HID Specification, USBIF HID Usage Tables</td>
 - *   </tr>
 - *   <tr>
 - *    <td><b>Usable Speeds:</b></td>
 - *    <td>Low Speed Mode, Full Speed Mode</td>
 - *   </tr>
 - *  </table>
 - *
 - *  \section SSec_Description Project Description: 
 - *
 - *  Missle Launcher host. This is a host driver for the popular USB-controller table top toy missle launchers,
 - *  which can typically aim and fire small foam "missles" from a spring-loaded turret. This project controls the
 - *  launcher via a joystick and button to aim and fire missles at targets without a PC.
 - *
 - *  \section SSec_Options Project Options
 - *
 - *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
 - *
 - *  <table>
 - *   <tr>
 - *    <td>
 - *     None
 - *    </td>
 - *   </tr>
 - *  </table>
 - */
 diff --git a/Projects/MissleLauncher/makefile b/Projects/MissleLauncher/makefile deleted file mode 100644 index 045266a443..0000000000 --- a/Projects/MissleLauncher/makefile +++ /dev/null @@ -1,733 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*-
 -#----------------------------------------------------------------------------
 -# WinAVR Makefile Template written by Eric B. Weddington, J�rg Wunsch, et al.
 -#  >> Modified for use with the LUFA project. <<
 -#
 -# Released to the Public Domain
 -#
 -# Additional material for this makefile was written by:
 -# Peter Fleury
 -# Tim Henigan
 -# Colin O'Flynn
 -# Reiner Patommel
 -# Markus Pfaff
 -# Sander Pool
 -# Frederik Rouleau
 -# Carlos Lamas
 -# Dean Camera
 -# Opendous Inc.
 -# Denver Gingerich
 -#
 -#----------------------------------------------------------------------------
 -# On command line:
 -#
 -# make all = Make software.
 -#
 -# make clean = Clean out built project files.
 -#
 -# make coff = Convert ELF to AVR COFF.
 -#
 -# make extcoff = Convert ELF to AVR Extended COFF.
 -#
 -# make program = Download the hex file to the device, using avrdude.
 -#                Please customize the avrdude settings below first!
 -#
 -# make dfu = Download the hex file to the device, using dfu-programmer (must
 -#            have dfu-programmer installed).
 -#
 -# make flip = Download the hex file to the device, using Atmel FLIP (must
 -#             have Atmel FLIP installed).
 -#
 -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
 -#               (must have dfu-programmer installed).
 -#
 -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
 -#                (must have Atmel FLIP installed).
 -#
 -# make doxygen = Generate DoxyGen documentation for the project (must have
 -#                DoxyGen installed)
 -#
 -# make debug = Start either simulavr or avarice as specified for debugging, 
 -#              with avr-gdb or avr-insight as the front end for debugging.
 -#
 -# make filename.s = Just compile filename.c into the assembler code only.
 -#
 -# make filename.i = Create a preprocessed source file for use in submitting
 -#                   bug reports to the GCC project.
 -#
 -# To rebuild project do "make clean" then "make all".
 -#----------------------------------------------------------------------------
 -
 -
 -# MCU name
 -MCU = at90usb1287
 -
 -
 -# Target board (see library "Board Types" documentation, USER or blank for projects not requiring
 -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called 
 -# "Board" inside the application directory.
 -BOARD  = USBKEY
 -
 -
 -# Processor frequency.
 -#     This will define a symbol, F_CPU, in all source code files equal to the 
 -#     processor frequency. You can then use this symbol in your source code to 
 -#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
 -#     automatically to create a 32-bit value in your source code.
 -#     Typical values are:
 -#         F_CPU =  1000000
 -#         F_CPU =  1843200
 -#         F_CPU =  2000000
 -#         F_CPU =  3686400
 -#         F_CPU =  4000000
 -#         F_CPU =  7372800
 -#         F_CPU =  8000000
 -#         F_CPU = 11059200
 -#         F_CPU = 14745600
 -#         F_CPU = 16000000
 -#         F_CPU = 18432000
 -#         F_CPU = 20000000
 -F_CPU = 8000000
 -
 -
 -# Input clock frequency.
 -#     This will define a symbol, F_CLOCK, in all source code files equal to the 
 -#     input clock frequency (before any prescaling is performed). This value may
 -#     differ from F_CPU if prescaling is used on the latter, and is required as the
 -#     raw input clock is fed directly to the PLL sections of the AVR for high speed
 -#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
 -#     at the end, this will be done automatically to create a 32-bit value in your
 -#     source code.
 -#
 -#     If no clock division is performed on the input clock inside the AVR (via the
 -#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 -F_CLOCK = 8000000
 -
 -
 -# Output format. (can be srec, ihex, binary)
 -FORMAT = ihex
 -
 -
 -# Target file name (without extension).
 -TARGET = MissileLauncher
 -
 -
 -# Object files directory
 -#     To put object files in current directory, use a dot (.), do NOT make
 -#     this an empty or blank macro!
 -OBJDIR = .
 -
 -
 -# Path to the LUFA library
 -LUFA_PATH = ../..
 -
 -
 -# List C source files here. (C dependencies are automatically generated.)
 -SRC = $(TARGET).c                                                 \
 -	  ConfigDescriptor.c                                          \
 -	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 -	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
 - 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \
 -	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Host/HIDParser.c        \
 -
 -
 -# List C++ source files here. (C dependencies are automatically generated.)
 -CPPSRC = 
 -
 -
 -# List Assembler source files here.
 -#     Make them always end in a capital .S.  Files ending in a lowercase .s
 -#     will not be considered source files but generated files (assembler
 -#     output from the compiler), and will be deleted upon "make clean"!
 -#     Even though the DOS/Win* filesystem matches both .s and .S the same,
 -#     it will preserve the spelling of the filenames, and gcc itself does
 -#     care about how the name is spelled on its command-line.
 -ASRC =
 -
 -
 -# Optimization level, can be [0, 1, 2, 3, s]. 
 -#     0 = turn off optimization. s = optimize for size.
 -#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
 -OPT = s
 -
 -
 -# Debugging format.
 -#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
 -#     AVR Studio 4.10 requires dwarf-2.
 -#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
 -DEBUG = dwarf-2
 -
 -
 -# List any extra directories to look for include files here.
 -#     Each directory must be seperated by a space.
 -#     Use forward slashes for directory separators.
 -#     For a directory that has spaces, enclose it in quotes.
 -EXTRAINCDIRS = $(LUFA_PATH)/
 -
 -
 -# Compiler flag to set the C Standard level.
 -#     c89   = "ANSI" C
 -#     gnu89 = c89 plus GCC extensions
 -#     c99   = ISO C99 standard (not yet fully implemented)
 -#     gnu99 = c99 plus GCC extensions
 -CSTANDARD = -std=gnu99
 -
 -
 -# Place -D or -U options here for C sources
 -CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
 -CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
 -CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 -
 -# Place -D or -U options here for ASM sources
 -ADEFS = -DF_CPU=$(F_CPU)
 -
 -
 -# Place -D or -U options here for C++ sources
 -CPPDEFS = -DF_CPU=$(F_CPU)UL
 -#CPPDEFS += -D__STDC_LIMIT_MACROS
 -#CPPDEFS += -D__STDC_CONSTANT_MACROS
 -
 -
 -
 -#---------------- Compiler Options C ----------------
 -#  -g*:          generate debugging information
 -#  -O*:          optimization level
 -#  -f...:        tuning, see GCC manual and avr-libc documentation
 -#  -Wall...:     warning level
 -#  -Wa,...:      tell GCC to pass this to the assembler.
 -#    -adhlns...: create assembler listing
 -CFLAGS = -g$(DEBUG)
 -CFLAGS += $(CDEFS)
 -CFLAGS += -O$(OPT)
 -CFLAGS += -funsigned-char
 -CFLAGS += -funsigned-bitfields
 -CFLAGS += -ffunction-sections
 -CFLAGS += -fpack-struct
 -CFLAGS += -fshort-enums
 -CFLAGS += -finline-limit=20
 -CFLAGS += -Wall
 -CFLAGS += -Wstrict-prototypes
 -CFLAGS += -Wundef
 -#CFLAGS += -fno-unit-at-a-time
 -#CFLAGS += -Wunreachable-code
 -#CFLAGS += -Wsign-compare
 -CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
 -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 -CFLAGS += $(CSTANDARD)
 -
 -
 -#---------------- Compiler Options C++ ----------------
 -#  -g*:          generate debugging information
 -#  -O*:          optimization level
 -#  -f...:        tuning, see GCC manual and avr-libc documentation
 -#  -Wall...:     warning level
 -#  -Wa,...:      tell GCC to pass this to the assembler.
 -#    -adhlns...: create assembler listing
 -CPPFLAGS = -g$(DEBUG)
 -CPPFLAGS += $(CPPDEFS)
 -CPPFLAGS += -O$(OPT)
 -CPPFLAGS += -funsigned-char
 -CPPFLAGS += -funsigned-bitfields
 -CPPFLAGS += -fpack-struct
 -CPPFLAGS += -fshort-enums
 -CPPFLAGS += -fno-exceptions
 -CPPFLAGS += -Wall
 -CFLAGS += -Wundef
 -#CPPFLAGS += -mshort-calls
 -#CPPFLAGS += -fno-unit-at-a-time
 -#CPPFLAGS += -Wstrict-prototypes
 -#CPPFLAGS += -Wunreachable-code
 -#CPPFLAGS += -Wsign-compare
 -CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
 -CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 -#CPPFLAGS += $(CSTANDARD)
 -
 -
 -#---------------- Assembler Options ----------------
 -#  -Wa,...:   tell GCC to pass this to the assembler.
 -#  -adhlns:   create listing
 -#  -gstabs:   have the assembler create line number information; note that
 -#             for use in COFF files, additional information about filenames
 -#             and function names needs to be present in the assembler source
 -#             files -- see avr-libc docs [FIXME: not yet described there]
 -#  -listing-cont-lines: Sets the maximum number of continuation lines of hex 
 -#       dump that will be displayed for a given single line of source input.
 -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
 -
 -
 -#---------------- Library Options ----------------
 -# Minimalistic printf version
 -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
 -
 -# Floating point printf version (requires MATH_LIB = -lm below)
 -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
 -
 -# If this is left blank, then it will use the Standard printf version.
 -PRINTF_LIB = 
 -#PRINTF_LIB = $(PRINTF_LIB_MIN)
 -#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
 -
 -
 -# Minimalistic scanf version
 -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
 -
 -# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
 -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
 -
 -# If this is left blank, then it will use the Standard scanf version.
 -SCANF_LIB = 
 -#SCANF_LIB = $(SCANF_LIB_MIN)
 -#SCANF_LIB = $(SCANF_LIB_FLOAT)
 -
 -
 -MATH_LIB = -lm
 -
 -
 -# List any extra directories to look for libraries here.
 -#     Each directory must be seperated by a space.
 -#     Use forward slashes for directory separators.
 -#     For a directory that has spaces, enclose it in quotes.
 -EXTRALIBDIRS = 
 -
 -
 -
 -#---------------- External Memory Options ----------------
 -
 -# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 -# used for variables (.data/.bss) and heap (malloc()).
 -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
 -
 -# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 -# only used for heap (malloc()).
 -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
 -
 -EXTMEMOPTS =
 -
 -
 -
 -#---------------- Linker Options ----------------
 -#  -Wl,...:     tell GCC to pass this to linker.
 -#    -Map:      create map file
 -#    --cref:    add cross reference to  map file
 -LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
 -LDFLAGS += -Wl,--relax 
 -LDFLAGS += -Wl,--gc-sections
 -LDFLAGS += $(EXTMEMOPTS)
 -LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
 -LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
 -#LDFLAGS += -T linker_script.x
 -
 -
 -
 -#---------------- Programming Options (avrdude) ----------------
 -
 -# Programming hardware: alf avr910 avrisp bascom bsd 
 -# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
 -#
 -# Type: avrdude -c ?
 -# to get a full listing.
 -#
 -AVRDUDE_PROGRAMMER = jtagmkII
 -
 -# com1 = serial port. Use lpt1 to connect to parallel port.
 -AVRDUDE_PORT = usb
 -
 -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
 -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 -
 -
 -# Uncomment the following if you want avrdude's erase cycle counter.
 -# Note that this counter needs to be initialized first using -Yn,
 -# see avrdude manual.
 -#AVRDUDE_ERASE_COUNTER = -y
 -
 -# Uncomment the following if you do /not/ wish a verification to be
 -# performed after programming the device.
 -#AVRDUDE_NO_VERIFY = -V
 -
 -# Increase verbosity level.  Please use this when submitting bug
 -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> 
 -# to submit bug reports.
 -#AVRDUDE_VERBOSE = -v -v
 -
 -AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
 -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
 -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
 -
 -
 -
 -#---------------- Debugging Options ----------------
 -
 -# For simulavr only - target MCU frequency.
 -DEBUG_MFREQ = $(F_CPU)
 -
 -# Set the DEBUG_UI to either gdb or insight.
 -# DEBUG_UI = gdb
 -DEBUG_UI = insight
 -
 -# Set the debugging back-end to either avarice, simulavr.
 -DEBUG_BACKEND = avarice
 -#DEBUG_BACKEND = simulavr
 -
 -# GDB Init Filename.
 -GDBINIT_FILE = __avr_gdbinit
 -
 -# When using avarice settings for the JTAG
 -JTAG_DEV = /dev/com1
 -
 -# Debugging port used to communicate between GDB / avarice / simulavr.
 -DEBUG_PORT = 4242
 -
 -# Debugging host used to communicate between GDB / avarice / simulavr, normally
 -#     just set to localhost unless doing some sort of crazy debugging when 
 -#     avarice is running on a different computer.
 -DEBUG_HOST = localhost
 -
 -
 -
 -#============================================================================
 -
 -
 -# Define programs and commands.
 -SHELL = sh
 -CC = avr-gcc
 -OBJCOPY = avr-objcopy
 -OBJDUMP = avr-objdump
 -SIZE = avr-size
 -AR = avr-ar rcs
 -NM = avr-nm
 -AVRDUDE = avrdude
 -REMOVE = rm -f
 -REMOVEDIR = rm -rf
 -COPY = cp
 -WINSHELL = cmd
 -
 -# Define Messages
 -# English
 -MSG_ERRORS_NONE = Errors: none
 -MSG_BEGIN = -------- begin --------
 -MSG_END = --------  end  --------
 -MSG_SIZE_BEFORE = Size before: 
 -MSG_SIZE_AFTER = Size after:
 -MSG_COFF = Converting to AVR COFF:
 -MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
 -MSG_FLASH = Creating load file for Flash:
 -MSG_EEPROM = Creating load file for EEPROM:
 -MSG_EXTENDED_LISTING = Creating Extended Listing:
 -MSG_SYMBOL_TABLE = Creating Symbol Table:
 -MSG_LINKING = Linking:
 -MSG_COMPILING = Compiling C:
 -MSG_COMPILING_CPP = Compiling C++:
 -MSG_ASSEMBLING = Assembling:
 -MSG_CLEANING = Cleaning project:
 -MSG_CREATING_LIBRARY = Creating library:
 -
 -
 -
 -
 -# Define all object files.
 -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) 
 -
 -# Define all listing files.
 -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) 
 -
 -
 -# Compiler flags to generate dependency files.
 -GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
 -
 -
 -# Combine all necessary flags and optional flags.
 -# Add target processor to flags.
 -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
 -ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
 -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 -
 -
 -
 -
 -
 -# Default target.
 -all: begin gccversion sizebefore build checkhooks checklibmode checkboard sizeafter end
 -
 -# Change the build target to build a HEX file or a library.
 -build: elf hex eep lss sym
 -#build: lib
 -
 -
 -elf: $(TARGET).elf
 -hex: $(TARGET).hex
 -eep: $(TARGET).eep
 -lss: $(TARGET).lss
 -sym: $(TARGET).sym
 -LIBNAME=lib$(TARGET).a
 -lib: $(LIBNAME)
 -
 -
 -
 -# Eye candy.
 -# AVR Studio 3.x does not check make's exit code but relies on
 -# the following magic strings to be generated by the compile job.
 -begin:
 -	@echo
 -	@echo $(MSG_BEGIN)
 -
 -end:
 -	@echo $(MSG_END)
 -	@echo
 -
 -
 -# Display size of file.
 -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
 -ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf
 -MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
 -FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
 -
 -sizebefore:
 -	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
 -	2>/dev/null; echo; fi
 -
 -sizeafter:
 -	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
 -	2>/dev/null; echo; fi
 -
 -checkhooks: build
 -	@echo
 -	@echo ------- Unhooked LUFA Events -------
 -	@$(shell) (grep -s '^EVENT_.*LUFA/.*\\.o' $(TARGET).map | \
 -	           cut -d' ' -f1 | cut -d'_' -f2- | grep ".*") || \
 -			   echo "(None)"
 -	@echo ------------------------------------
 -
 -checklibmode:
 -	@echo
 -	@echo ----------- Library Mode -----------
 -	@$(shell) ($(CC) $(ALL_CFLAGS) -E -dM - < /dev/null \
 -	          | grep 'USB_\(DEVICE\|HOST\)_ONLY' | cut -d' ' -f2 | grep ".*") \
 -	          || echo "No specific mode (both device and host mode allowable)."
 -	@echo ------------------------------------
 -
 -checkboard:
 -	@echo
 -	@echo ---------- Selected Board ----------
 -	@echo Selected board model is $(BOARD).
 -	@echo ------------------------------------
 -	
 -# Display compiler version information.
 -gccversion : 
 -	@$(CC) --version
 -
 -
 -
 -# Program the device.  
 -program: $(TARGET).hex $(TARGET).eep
 -	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 -
 -flip: $(TARGET).hex
 -	batchisp -hardware usb -device $(MCU) -operation erase f
 -	batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program
 -	batchisp -hardware usb -device $(MCU) -operation start reset 0
 -
 -dfu: $(TARGET).hex
 -	dfu-programmer $(MCU) erase
 -	dfu-programmer $(MCU) flash --debug 1 $(TARGET).hex
 -	dfu-programmer $(MCU) reset
 -
 -flip-ee: $(TARGET).hex $(TARGET).eep
 -	copy $(TARGET).eep $(TARGET)eep.hex
 -	batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
 -	batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program
 -	batchisp -hardware usb -device $(MCU) -operation start reset 0
 -
 -dfu-ee: $(TARGET).hex $(TARGET).eep
 -	dfu-programmer $(MCU) flash-eeprom --debug 1 --suppress-bootloader-mem $(TARGET).eep
 -	dfu-programmer $(MCU) reset
 -
 -
 -# Generate avr-gdb config/init file which does the following:
 -#     define the reset signal, load the target file, connect to target, and set 
 -#     a breakpoint at main().
 -gdb-config: 
 -	@$(REMOVE) $(GDBINIT_FILE)
 -	@echo define reset >> $(GDBINIT_FILE)
 -	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
 -	@echo end >> $(GDBINIT_FILE)
 -	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
 -	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
 -ifeq ($(DEBUG_BACKEND),simulavr)
 -	@echo load  >> $(GDBINIT_FILE)
 -endif
 -	@echo break main >> $(GDBINIT_FILE)
 -
 -debug: gdb-config $(TARGET).elf
 -ifeq ($(DEBUG_BACKEND), avarice)
 -	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
 -	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
 -	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
 -	@$(WINSHELL) /c pause
 -
 -else
 -	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
 -	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
 -endif
 -	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
 -
 -
 -
 -
 -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
 -COFFCONVERT = $(OBJCOPY) --debugging
 -COFFCONVERT += --change-section-address .data-0x800000
 -COFFCONVERT += --change-section-address .bss-0x800000
 -COFFCONVERT += --change-section-address .noinit-0x800000
 -COFFCONVERT += --change-section-address .eeprom-0x810000
 -
 -
 -
 -coff: $(TARGET).elf
 -	@echo
 -	@echo $(MSG_COFF) $(TARGET).cof
 -	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
 -
 -
 -extcoff: $(TARGET).elf
 -	@echo
 -	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
 -	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
 -
 -
 -
 -# Create final output files (.hex, .eep) from ELF output file.
 -%.hex: %.elf
 -	@echo
 -	@echo $(MSG_FLASH) $@
 -	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 -
 -%.eep: %.elf
 -	@echo
 -	@echo $(MSG_EEPROM) $@
 -	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
 -	--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
 -
 -# Create extended listing file from ELF output file.
 -%.lss: %.elf
 -	@echo
 -	@echo $(MSG_EXTENDED_LISTING) $@
 -	$(OBJDUMP) -h -z -S $< > $@
 -
 -# Create a symbol table from ELF output file.
 -%.sym: %.elf
 -	@echo
 -	@echo $(MSG_SYMBOL_TABLE) $@
 -	$(NM) -n $< > $@
 -
 -
 -
 -# Create library from object files.
 -.SECONDARY : $(TARGET).a
 -.PRECIOUS : $(OBJ)
 -%.a: $(OBJ)
 -	@echo
 -	@echo $(MSG_CREATING_LIBRARY) $@
 -	$(AR) $@ $(OBJ)
 -
 -
 -# Link: create ELF output file from object files.
 -.SECONDARY : $(TARGET).elf
 -.PRECIOUS : $(OBJ)
 -%.elf: $(OBJ)
 -	@echo
 -	@echo $(MSG_LINKING) $@
 -	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
 -
 -
 -# Compile: create object files from C source files.
 -$(OBJDIR)/%.o : %.c
 -	@echo
 -	@echo $(MSG_COMPILING) $<
 -	$(CC) -c $(ALL_CFLAGS) $< -o $@ 
 -
 -
 -# Compile: create object files from C++ source files.
 -$(OBJDIR)/%.o : %.cpp
 -	@echo
 -	@echo $(MSG_COMPILING_CPP) $<
 -	$(CC) -c $(ALL_CPPFLAGS) $< -o $@ 
 -
 -
 -# Compile: create assembler files from C source files.
 -%.s : %.c
 -	$(CC) -S $(ALL_CFLAGS) $< -o $@
 -
 -
 -# Compile: create assembler files from C++ source files.
 -%.s : %.cpp
 -	$(CC) -S $(ALL_CPPFLAGS) $< -o $@
 -
 -
 -# Assemble: create object files from assembler source files.
 -$(OBJDIR)/%.o : %.S
 -	@echo
 -	@echo $(MSG_ASSEMBLING) $<
 -	$(CC) -c $(ALL_ASFLAGS) $< -o $@
 -
 -
 -# Create preprocessed source for use in sending a bug report.
 -%.i : %.c
 -	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ 
 -	
 -
 -# Target: clean project.
 -clean: begin clean_list clean_binary end
 -
 -clean_binary:
 -	$(REMOVE) $(TARGET).hex
 -	
 -clean_list:
 -	@echo $(MSG_CLEANING)
 -	$(REMOVE) $(TARGET).eep
 -	$(REMOVE) $(TARGET)eep.hex
 -	$(REMOVE) $(TARGET).cof
 -	$(REMOVE) $(TARGET).elf
 -	$(REMOVE) $(TARGET).map
 -	$(REMOVE) $(TARGET).sym
 -	$(REMOVE) $(TARGET).lss
 -	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o)
 -	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst)
 -	$(REMOVE) $(SRC:.c=.s)
 -	$(REMOVE) $(SRC:.c=.d)
 -	$(REMOVE) $(SRC:.c=.i)
 -	$(REMOVEDIR) .dep
 -
 -
 -doxygen:
 -	@echo Generating Project Documentation...
 -	@doxygen Doxygen.conf
 -	@echo Documentation Generation Complete.
 -
 -clean_doxygen:
 -	rm -rf Documentation
 -
 -# Create object files directory
 -$(shell mkdir $(OBJDIR) 2>/dev/null)
 -
 -
 -# Include the dependency files.
 --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
 -
 -
 -# Listing of phony targets.
 -.PHONY : all checkhooks checklibmode checkboard   \
 -begin finish end sizebefore sizeafter gccversion  \
 -build elf hex eep lss sym coff extcoff clean      \
 -clean_list clean_binary program debug gdb-config  \
 -doxygen dfu flip flip-ee dfu-ee
 diff --git a/Projects/makefile b/Projects/makefile index 34764b9f19..2212bcb488 100644 --- a/Projects/makefile +++ b/Projects/makefile @@ -17,8 +17,8 @@ all:  	make -C Magstripe clean  	make -C Magstripe all -	make -C MissleLauncher clean -	make -C MissleLauncher all +	make -C MissileLauncher clean +	make -C MissileLauncher all  %:  	make -C Magstripe $@ | 
