]> git.donarmstrong.com Git - qmk_firmware.git/blob - protocol/lufa/LUFA-120730/LUFA/Build/lufa_core.mk
Change TOP_DIR to TMK_DIR in makefiles
[qmk_firmware.git] / protocol / lufa / LUFA-120730 / LUFA / Build / lufa_core.mk
1 #\r
2 #             LUFA Library\r
3 #     Copyright (C) Dean Camera, 2012.\r
4 #\r
5 #  dean [at] fourwalledcubicle [dot] com\r
6 #           www.lufa-lib.org\r
7 #\r
8 \r
9 LUFA_BUILD_MODULES         += CORE\r
10 LUFA_BUILD_TARGETS         += help list_targets list_modules list_mandatory list_optional list_provided list_macros\r
11 LUFA_BUILD_MANDATORY_VARS  += \r
12 LUFA_BUILD_OPTIONAL_VARS   += \r
13 LUFA_BUILD_PROVIDED_VARS   += \r
14 LUFA_BUILD_PROVIDED_MACROS += \r
15 \r
16 # -----------------------------------------------------------------------------\r
17 #               LUFA Core Build System Makefile Module.\r
18 # -----------------------------------------------------------------------------\r
19 # DESCRIPTION:\r
20 #   Provides a set of core build targets for the LUFA build system\r
21 # -----------------------------------------------------------------------------\r
22 # TARGETS:\r
23 #\r
24 #    help                      - Build system help\r
25 #    list_targets              - List all build targets\r
26 #    list_modules              - List all build modules\r
27 #    list_mandatory            - List all mandatory make variables required by\r
28 #                                the included build modules of the application\r
29 #    list_optional             - List all optional make variables required by\r
30 #                                the included build modules of the application\r
31 #    list_provided             - List all provided make variables from the\r
32 #                                included build modules of the application\r
33 #    list_macros               - List all provided make macros from the\r
34 #                                included build modules of the application\r
35 #\r
36 # MANDATORY PARAMETERS:\r
37 #\r
38 #    (None)\r
39 #\r
40 # OPTIONAL PARAMETERS:\r
41 #\r
42 #    (None)\r
43 #\r
44 # PROVIDED VARIABLES:\r
45 #\r
46 #    (None)\r
47 #\r
48 # PROVIDED MACROS:\r
49 #\r
50 #    (None)\r
51 #\r
52 # -----------------------------------------------------------------------------\r
53 \r
54 SHELL = /bin/sh\r
55 \r
56 # Build sorted and filtered lists of the included build module data\r
57 SORTED_LUFA_BUILD_MODULES   = $(sort $(LUFA_BUILD_MODULES))\r
58 SORTED_LUFA_BUILD_TARGETS   = $(sort $(LUFA_BUILD_TARGETS))\r
59 SORTED_LUFA_MANDATORY_VARS  = $(sort $(LUFA_BUILD_MANDATORY_VARS))\r
60 SORTED_LUFA_OPTIONAL_VARS   = $(filter-out $(SORTED_LUFA_MANDATORY_VARS), $(sort $(LUFA_BUILD_OPTIONAL_VARS)))\r
61 SORTED_LUFA_PROVIDED_VARS   = $(sort $(LUFA_BUILD_PROVIDED_VARS))\r
62 SORTED_LUFA_PROVIDED_MACROS = $(sort $(LUFA_BUILD_PROVIDED_MACROS))\r
63 \r
64 # Create printable versions of the sorted build module data (use "(None)" when no data is available)\r
65 PRINTABLE_LUFA_BUILD_MODULES   = $(if $(strip $(SORTED_LUFA_BUILD_MODULES)), $(SORTED_LUFA_BUILD_MODULES), (None))\r
66 PRINTABLE_LUFA_BUILD_TARGETS   = $(if $(strip $(SORTED_LUFA_BUILD_TARGETS)), $(SORTED_LUFA_BUILD_TARGETS), (None))\r
67 PRINTABLE_LUFA_MANDATORY_VARS  = $(if $(strip $(SORTED_LUFA_MANDATORY_VARS)), $(SORTED_LUFA_MANDATORY_VARS), (None))\r
68 PRINTABLE_LUFA_OPTIONAL_VARS   = $(if $(strip $(SORTED_LUFA_OPTIONAL_VARS)), $(SORTED_LUFA_OPTIONAL_VARS), (None))\r
69 PRINTABLE_LUFA_PROVIDED_VARS   = $(if $(strip $(SORTED_LUFA_PROVIDED_VARS)), $(SORTED_LUFA_PROVIDED_VARS), (None))\r
70 PRINTABLE_LUFA_PROVIDED_MACROS = $(if $(strip $(SORTED_LUFA_PROVIDED_MACROS)), $(SORTED_LUFA_PROVIDED_MACROS), (None))\r
71 \r
72 help:\r
73         @echo "==================================================================="\r
74         @echo "                       LUFA Build System 2.0                       "\r
75         @echo "      (C) Dean Camera, 2012 { dean @ fourwalledcubicle . com }     "\r
76         @echo "==================================================================="\r
77         @echo "DESCRIPTION:                                                       "\r
78         @echo " This build system is a set of makefile modules for (GNU) Make, to "\r
79         @echo " provide a simple system for building LUFA powered applications.   "\r
80         @echo " Each makefile module can be included from within a user makefile, "\r
81         @echo " to expose the build rules documented in the comments at the top of"\r
82         @echo " each build module.                                                "\r
83         @echo "                                                                   "\r
84         @echo "USAGE:                                                             "     \r
85         @echo " To execute a rule, define all variables indicated in the desired  "\r
86         @echo " module as a required parameter before including the build module  "\r
87         @echo " in your project makefile. Parameters marked as optional will      "\r
88         @echo " assume a default value in the modules if not user-assigned.       "\r
89         @echo "                                                                   "\r
90         @echo " By default the target output shows both a friendly summary, as    "\r
91         @echo " well as the actual invoked command. To suppress the output of the "\r
92         @echo " invoked commands and show only the friendly command output, run   "\r
93         @echo " make with the \"-s\" switch added before the target(s).           "             \r
94         @echo "==================================================================="\r
95         @echo "                                                                   "\r
96         @echo "  Currently used build system modules in this application:         "\r
97         @echo "                                                                   "\r
98         @printf " %b" "$(PRINTABLE_LUFA_BUILD_MODULES:%=   - %\n)"\r
99         @echo "                                                                   "\r
100         @echo "                                                                   "\r
101         @echo "  Currently available build targets in this application:           "\r
102         @echo "                                                                   "\r
103         @printf " %b" "$(PRINTABLE_LUFA_BUILD_TARGETS:%=   - %\n)"\r
104         @echo "                                                                   "\r
105         @echo "                                                                   "\r
106         @echo "  Mandatory variables required by the selected build Modules:      "\r
107         @echo "                                                                   "\r
108         @printf " %b" "$(PRINTABLE_LUFA_MANDATORY_VARS:%=   - %\n)"\r
109         @echo "                                                                   "\r
110         @echo "                                                                   "\r
111         @echo "  Optional variables required by the selected build Modules:       "\r
112         @echo "                                                                   "\r
113         @printf " %b" "$(PRINTABLE_LUFA_OPTIONAL_VARS:%=   - %\n)"\r
114         @echo "                                                                   "\r
115         @echo "                                                                   "\r
116         @echo "  Variables provided by the selected build Modules:                "\r
117         @echo "                                                                   "\r
118         @printf " %b" "$(PRINTABLE_LUFA_PROVIDED_VARS:%=   - %\n)"\r
119         @echo "                                                                   "\r
120         @echo "                                                                   "\r
121         @echo "  Macros provided by the selected build Modules:                   "\r
122         @echo "                                                                   "\r
123         @printf " %b" "$(PRINTABLE_LUFA_PROVIDED_MACROS:%=   - %\n)"\r
124         @echo "                                                                   "\r
125         @echo "==================================================================="\r
126         @echo "        The LUFA BuildSystem 2.0 - Powered By Unicorns (tm)        "\r
127         @echo "==================================================================="\r
128         \r
129 list_modules:\r
130         @echo Currently Used Build System Modules: $(PRINTABLE_LUFA_BUILD_MODULES)\r
131 \r
132 list_targets:\r
133         @echo Currently Available Build Targets: $(PRINTABLE_LUFA_BUILD_TARGETS)        \r
134 \r
135 list_mandatory:\r
136         @echo Mandatory Variables for Included Modules: $(PRINTABLE_LUFA_MANDATORY_VARS)\r
137         \r
138 list_optional:\r
139         @echo Optional Variables for Included Modules: $(PRINTABLE_LUFA_OPTIONAL_VARS)\r
140 \r
141 list_provided:\r
142         @echo Variables Provided by the Included Modules: $(PRINTABLE_LUFA_PROVIDED_VARS)\r
143 \r
144 list_macros:\r
145         @echo Macros Provided by the Included Modules: $(PRINTABLE_LUFA_PROVIDED_MACROS)\r
146 \r
147 # Disable default in-built make rules (those that are needed are explicitly\r
148 # defined, and doing so has performance benefits when recursively building)\r
149 .SUFFIXES:\r
150 \r
151 # Phony build targets for this module\r
152 .PHONY: help list_modules list_targets list_mandatory list_optional list_provided list_macros\r