3 #     Copyright (C) Dean Camera, 2011.
 
   5 #  dean [at] fourwalledcubicle [dot] com
 
   9 # Makefile for the LUFA library itself. This can be used to generate the library documentation.
 
  12 # Check to see if the LUFA_PATH variable has not been set (the makefile is not being included from a project makefile)
 
  13 ifeq ($(origin LUFA_PATH), undefined)
 
  15    ARCH = {AVR8,UC3,XMEGA}
 
  17    LUFA_ROOT_PATH = $(LUFA_PATH)/LUFA
 
  20 # Check to see if the chip architecture has not been defined in the user makefile, set a default architecture if not
 
  21 ifeq ($(origin ARCH), undefined)
 
  25 # Define module source file lists
 
  26 LUFA_SRC_USB           = $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Device_$(ARCH).c          \
 
  27                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Endpoint_$(ARCH).c        \
 
  28                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Host_$(ARCH).c            \
 
  29                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Pipe_$(ARCH).c            \
 
  30                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBController_$(ARCH).c   \
 
  31                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBInterrupt_$(ARCH).c    \
 
  32                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/EndpointStream_$(ARCH).c  \
 
  33                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/PipeStream_$(ARCH).c      \
 
  34                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/ConfigDescriptor.c                \
 
  35                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/DeviceStandardReq.c               \
 
  36                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/Events.c                          \
 
  37                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/HostStandardReq.c                 \
 
  38                          $(LUFA_ROOT_PATH)/Drivers/USB/Core/USBTask.c                         \
 
  39                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Common/HIDParser.c
 
  40 LUFA_SRC_USBCLASS      = $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/AudioClassDevice.c        \
 
  41                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDCClassDevice.c          \
 
  42                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/HIDClassDevice.c          \
 
  43                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MassStorageClassDevice.c  \
 
  44                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MIDIClassDevice.c         \
 
  45                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/RNDISClassDevice.c        \
 
  46                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c \
 
  47                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AudioClassHost.c            \
 
  48                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/CDCClassHost.c              \
 
  49                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/HIDClassHost.c              \
 
  50                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MassStorageClassHost.c      \
 
  51                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MIDIClassHost.c             \
 
  52                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/PrinterClassHost.c          \
 
  53                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/RNDISClassHost.c            \
 
  54                          $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/StillImageClassHost.c
 
  55 LUFA_SRC_TEMPERATURE   = $(LUFA_ROOT_PATH)/Drivers/Board/Temperature.c
 
  56 LUFA_SRC_SERIAL        = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/Serial_$(ARCH).c
 
  57 LUFA_SRC_TWI           = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/TWI_$(ARCH).c
 
  60 # Check to see if the LUFA_PATH variable has not been set (the makefile is not being included from a project makefile)
 
  61 ifeq ($(origin LUFA_PATH), undefined)
 
  62    LUFA_VERSION_NUM    = $(shell grep LUFA_VERSION_STRING Version.h | cut -d'"' -f2)
 
  64    LUFA_SRC_ALL_FILES  = $(LUFA_SRC_USB)            \
 
  65                          $(LUFA_SRC_USBCLASS)       \
 
  66                          $(LUFA_SRC_TEMPERATURE)    \
 
  70    EXCLUDE_FROM_EXPORT = Documentation DoxygenPages CodeTemplates *.conf *.tar *.o *.lss *.lst *.hex *.elf *.bin
 
  75         rm -f $(LUFA_SRC_ALL_FILES:%.c=%.o)
 
  76         rm -f $(LUFA_SRC_ALL_FILES:%.c=%.lst)
 
  81         @echo Generating LUFA Library Documentation...
 
  83         @if ( ( cat Doxygen.conf ; echo "PROJECT_NUMBER=$(LUFA_VERSION_NUM)" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
 
  87         @echo Documentation Generation Complete.
 
  95         @echo Exporting LUFA library to a TAR archive...
 
  96         @tar -cf LUFA_$(LUFA_VERSION_NUM).tar --directory=. $(EXCLUDE_FROM_EXPORT:%=--exclude=%) *
 
  97         @tar -cf LUFA_$(LUFA_VERSION_NUM)_Code_Templates.tar CodeTemplates
 
  98         @echo Export LUFA_$(LUFA_VERSION_NUM).tar complete.
 
 101         @echo "LUFA $(LUFA_VERSION_NUM)"
 
 103    .PHONY: all clean clean_list doxygen clean_doxygen checksource export_tar version