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