33dcf8323557989a6f1e61b370b1c1747d18675c
[pub/USBasp.git] / LUFA / StudioIntegration / makefile
1 #
2 # LUFA Library
3 # Copyright (C) Dean Camera, 2013.
4 #
5 # dean [at] fourwalledcubicle [dot] com
6 # www.lufa-lib.org
7 #
8 # ---------------------------------------
9 # Makefile for the LUFA Atmel Studio Integration.
10 # ---------------------------------------
11
12 LUFA_ROOT := ../
13 DOXYGEN_TAG_FILE_XML := $(LUFA_ROOT)/Documentation/lufa_doc_tags.xml
14 TEMP_MANIFEST_XML := manifest.xml
15 EXTENSION_OUTPUT_XML := $(LUFA_ROOT)/../extension.xml
16 MODULE_OUTPUT_XML := $(LUFA_ROOT)/asf.xml
17 XML_FILES := $(filter-out $(TEMP_MANIFEST_FILE), $(shell ls *.xml))
18 LUFA_VERSION_NUM := $(shell grep LUFA_VERSION_STRING $(LUFA_ROOT)/Version.h | cut -d'"' -f2)
19
20 all: check_filenames generate_xml
21
22 clean:
23 @rm $(TEMP_MANIFEST_XML) $(MODULE_OUTPUT_XML) $(EXTENSION_OUTPUT_XML)
24
25 $(DOXYGEN_TAG_FILE_XML):
26 make -C ../ doxygen
27
28 $(TEMP_MANIFEST_XML): $(DOXYGEN_TAG_FILE_XML)
29 @echo "Generating Manifest XML..."
30
31 @printf "<lufa-manifest version=\"%s\" tagfile=\"%s\">\n" $(LUFA_VERSION_NUM) $(DOXYGEN_TAG_FILE_XML) > $@
32 @for i in $(XML_FILES); do \
33 printf "\t<xml-source filename=\"%s\"/>\n" $$i >> $@; \
34 done;
35 @echo '</lufa-manifest>' >> $@
36
37 @echo "Manifest XML file generated."
38
39 generate_xml: $(TEMP_MANIFEST_XML)
40 @echo "Processing asf.xml file..."
41 @xsltproc lufa_module_transform.xslt $< | xsltproc lufa_indent_transform.xslt - > $(MODULE_OUTPUT_XML)
42 @echo "Atmel Studio asf.xml file generated."
43
44 @echo "Processing extension.xml file..."
45 @xsltproc lufa_extension_transform.xslt $< | xsltproc lufa_indent_transform.xslt - > $(EXTENSION_OUTPUT_XML)
46 @echo "Atmel Studio extension.xml file generated."
47
48 @rm $(TEMP_MANIFEST_XML)
49
50 check_filenames: $(TEMP_MANIFEST_XML)
51 @for i in `xsltproc lufa_filelist_transform.xslt manifest.xml | grep -v "^<" | sed -e "/^$$/d"`; do \
52 if ( ! test -f "$(LUFA_ROOT)/$$i" ); then \
53 echo "Source file $$i does not exist!"; \
54 fi; \
55 done;
56
57 .PHONY: all clean check_filenames generate_xml