2017-07-07 17:32:27 +02:00
|
|
|
# set default values for selected global variables
|
|
|
|
FLASH_ADDR ?= 0x0
|
|
|
|
|
2016-12-17 01:16:07 +01:00
|
|
|
export Q # Used in front of Makefile lines to suppress the printing of the command if user did not opt-in to see them.
|
2016-12-22 12:18:38 +01:00
|
|
|
export QQ # as Q, but be more quiet
|
2014-05-05 21:53:37 +02:00
|
|
|
export QUIET # The parameter to use whether to show verbose makefile commands or not.
|
|
|
|
|
|
|
|
export APPLICATION # The application, set in the Makefile which is run by the user.
|
2018-01-29 15:48:18 +01:00
|
|
|
export APPLICATION_MODULE # The application module name.
|
2014-05-05 21:53:37 +02:00
|
|
|
export BOARD # The board to compile the application for.
|
|
|
|
export CPU # The CPU, set by the board's Makefile.include.
|
2014-08-21 14:53:48 +02:00
|
|
|
export CPU_MODEL # The specific identifier of the used CPU, used for some CPU implementations to differentiate between different memory layouts
|
2014-05-05 21:53:37 +02:00
|
|
|
export MCU # The MCU, set by the board's Makefile.include, or defaulted to the same value as CPU.
|
|
|
|
export INCLUDES # The extra include paths, set by the various Makefile.include files.
|
2018-10-15 21:00:20 +02:00
|
|
|
export CXXINCLUDES # The extra include paths for c++, set by the various Makefile.include files.
|
2014-05-05 21:53:37 +02:00
|
|
|
|
|
|
|
export USEMODULE # Sys Module dependencies of the application. Set in the application's Makefile.
|
|
|
|
export USEPKG # Pkg dependencies (third party modules) of the application. Set in the application's Makefile.
|
|
|
|
export DISABLE_MODULE # Used in the application's Makefile to suppress DEFAULT_MODULEs.
|
|
|
|
export APPDEPS # Files / Makefile targets that need to be created before the application can be build. Set in the application's Makefile.
|
2018-04-23 13:59:39 +02:00
|
|
|
# BUILDDEPS # Files / Makefile targets that need to be created before starting to build.
|
2014-05-05 21:53:37 +02:00
|
|
|
|
|
|
|
export RIOTBASE # The root folder of RIOT. The folder where this very file lives in.
|
|
|
|
export RIOTCPU # For third party CPUs this folder is the base of the CPUs.
|
|
|
|
export RIOTBOARD # For third party BOARDs this folder is the base of the BOARDs.
|
2016-03-05 00:53:05 +01:00
|
|
|
export RIOTPKG # For overriding RIOT's pkg directory
|
2018-02-02 10:43:28 +01:00
|
|
|
export RIOTTOOLS # Location of host machine tools
|
2015-02-05 10:03:05 +01:00
|
|
|
export RIOTPROJECT # Top level git root of the project being built, or PWD if not a git repository
|
2016-01-27 10:47:12 +01:00
|
|
|
export RIOTMAKE # Location of all supplemental Makefiles (such as this file)
|
2014-05-05 21:53:37 +02:00
|
|
|
export BINDIRBASE # This is the folder where the application should be built in. For each BOARD a different subfolder is used.
|
|
|
|
export BINDIR # This is the folder where the application should be built in.
|
2018-09-25 17:51:18 +02:00
|
|
|
export BUILD_DIR # This is the base folder to store common build files and artifacts, e.g. test results.
|
2015-04-29 20:50:18 +02:00
|
|
|
export APPDIR # The base folder containing the application
|
2017-02-25 15:41:22 +01:00
|
|
|
export PKGDIRBASE # The base folder for building packages
|
2014-05-05 21:53:37 +02:00
|
|
|
|
2018-08-10 11:32:38 +02:00
|
|
|
export PYTHONPATH # Python default search path for module filesi, with RIOT specific packages
|
|
|
|
|
2017-03-03 10:13:41 +01:00
|
|
|
export FEATURES_REQUIRED # List of required features by the application
|
|
|
|
export FEATURES_PROVIDED # List of provided features by the board
|
|
|
|
export FEATURES_OPTIONAL # List of nice to have features
|
2018-08-12 12:26:31 +02:00
|
|
|
# TOOLCHAINS_SUPPORTED # List of supported toolchains by an MCU (gnu/llvm/...).
|
|
|
|
# TOOLCHAINS_BLACKLISTED # List of unspported toolchains for a module or an application.
|
2017-03-03 10:13:41 +01:00
|
|
|
|
2016-03-17 21:55:17 +01:00
|
|
|
export TARGET_ARCH # The target platform name, in GCC triple notation, e.g. "arm-none-eabi", "i686-elf", "avr"
|
|
|
|
export PREFIX # The prefix of the toolchain commands, usually "$(TARGET_ARCH)-", e.g. "arm-none-eabi-" or "msp430-".
|
2014-05-05 21:53:37 +02:00
|
|
|
export CC # The C compiler to use.
|
|
|
|
export CXX # The CXX compiler to use.
|
2017-03-01 11:24:11 +01:00
|
|
|
export CCAS # The C compiler to use for assembler files, typically the same as CC.
|
2014-05-05 21:53:37 +02:00
|
|
|
export CFLAGS # The compiler flags. Must only ever be used with `+=`.
|
2017-03-01 11:24:11 +01:00
|
|
|
export CXXUWFLAGS # (Patterns of) flags in CFLAGS that should not be passed to CXX.
|
2014-05-05 21:53:37 +02:00
|
|
|
export CXXEXFLAGS # Additional flags that should be passed to CXX.
|
2017-03-01 11:24:11 +01:00
|
|
|
export CCASUWFLAGS # (Patterns of) flags in CFLAGS that should not be passed to CCAS.
|
|
|
|
export CCASEXFLAGS # Additional flags that should be passed to CCAS.
|
2014-05-05 21:53:37 +02:00
|
|
|
export AR # The command to create the object file archives.
|
2015-01-20 21:34:17 +01:00
|
|
|
export ARFLAGS # Command-line options to pass to AR, default `rcs`.
|
2014-05-05 21:53:37 +02:00
|
|
|
export AS # The assembler.
|
|
|
|
export ASFLAGS # Flags for the assembler.
|
|
|
|
export LINK # The command used to link the files. Must take the same parameters as GCC, i.e. "ld" won't work.
|
2019-01-23 17:17:50 +01:00
|
|
|
# LINKFLAGS # Flags to supply in the linking step.
|
2016-08-10 16:03:53 +02:00
|
|
|
export LTOFLAGS # extra CFLAGS for compiling with link time optimization
|
2014-05-05 21:53:37 +02:00
|
|
|
export OBJCOPY # The command used to create the HEXFILE.
|
|
|
|
export OFLAGS # The parameter for OBJCOPY, e.g. to strip the debug information.
|
2016-02-23 23:55:58 +01:00
|
|
|
export OBJDUMP # The command used to create the assembly listing.
|
|
|
|
export OBJDUMPFLAGS # The parameter for OBJDUMP.
|
2014-05-05 21:53:37 +02:00
|
|
|
export SIZE # The command to read to size of the ELF sections.
|
2018-04-26 11:18:15 +02:00
|
|
|
export SIZEFLAGS # The optional size flags.
|
2018-01-26 19:32:42 +01:00
|
|
|
export UNDEF # Object files that the linker must include in the ELFFILE even if no call to the functions or symbols (ex: interrupt vectors).
|
2015-07-21 07:05:14 +02:00
|
|
|
export WERROR # Treat all compiler warnings as errors if set to 1 (see -Werror flag in GCC manual)
|
2014-05-05 21:53:37 +02:00
|
|
|
|
2016-03-20 12:40:20 +01:00
|
|
|
export GITCACHE # path to git-cache executable
|
2018-07-31 15:00:14 +02:00
|
|
|
export GIT_CACHE_DIR # path to git-cache cache directory
|
2019-05-17 13:52:34 +02:00
|
|
|
# FLASHER # The command to call on "make flash".
|
|
|
|
# FFLAGS # The parameters to supply to FLASHER.
|
2018-06-05 13:28:23 +02:00
|
|
|
export FLASH_ADDR # Define an offset to flash code into ROM memory.
|
2019-02-25 16:46:44 +01:00
|
|
|
# TERMPROG # The command to call on "make term".
|
|
|
|
# TERMFLAGS # Additional parameters to supply to TERMPROG.
|
2014-08-21 14:53:48 +02:00
|
|
|
export PORT # The port to connect the TERMPROG to.
|
2014-05-05 21:53:37 +02:00
|
|
|
export ELFFILE # The unstripped result of the compilation.
|
|
|
|
export HEXFILE # The stripped result of the compilation.
|
2018-12-19 18:10:57 +01:00
|
|
|
# FLASHFILE # The output file used for flashing (transition phase: only if defined)
|
2019-05-17 13:52:34 +02:00
|
|
|
# DEBUGGER # The command to call on "make debug", usually a script starting the GDB front-end.
|
|
|
|
# DEBUGGER_FLAGS # The parameters to supply to DEBUGGER.
|
|
|
|
# DEBUGSERVER # The command to call on "make debug-server", usually a script starting the GDB server.
|
|
|
|
# DEBUGSERVER_FLAGS # The parameters to supply to DEBUGSERVER.
|
2019-05-17 13:52:34 +02:00
|
|
|
# RESET # The command to call on "make reset", this command resets/reboots the target.
|
|
|
|
# RESET_FLAGS # The parameters to supply to RESET.
|
make: centralize wget/curl & unzip/7z feature test
With many open PRs that could benefit from loading SDKs when needed,
instead adding vast amounts of code to RIOTs master, this PR provides
the "functions" `$(DOWNLOAD_TO_STDOUT)`, `$(DOWNLOAD_TO_FILE)`, and
`$(UNZIP_HERE)`.
The first "function" takes one argument, the URL from where to download
the content. It is then piped to stdout. To be used e.g. with `tar xz`.
The second "function" taken two arguments, the destination file name,
and the source URL. If the previous invocation was interrupted, then the
download gets continued, if possible.
The last "function" takes one argument, the source ZIP file. The file
gets extracted into the cwd, so best use this "function" with
`cd $(SOME_WHERE) &&`.
The clumsy name `$(UNZIP_HERE)` is taken because the program "unzip"
takes the environment variable `UNZIP` as the source file, even if
another file name was given on the command line. The rationale for that
is that the hackers of "unzip" hate their users. Also they sacrifice
hamsters to Satan.
2014-07-16 00:29:18 +02:00
|
|
|
|
2015-08-14 00:31:36 +02:00
|
|
|
export CCACHE_BASEDIR # ccache basedir, allows multiple riot build
|
|
|
|
# directories to share a ccache directory
|
|
|
|
|
2017-02-23 17:34:32 +01:00
|
|
|
export DLCACHE # directory used to cache http downloads
|
make: centralize wget/curl & unzip/7z feature test
With many open PRs that could benefit from loading SDKs when needed,
instead adding vast amounts of code to RIOTs master, this PR provides
the "functions" `$(DOWNLOAD_TO_STDOUT)`, `$(DOWNLOAD_TO_FILE)`, and
`$(UNZIP_HERE)`.
The first "function" takes one argument, the URL from where to download
the content. It is then piped to stdout. To be used e.g. with `tar xz`.
The second "function" taken two arguments, the destination file name,
and the source URL. If the previous invocation was interrupted, then the
download gets continued, if possible.
The last "function" takes one argument, the source ZIP file. The file
gets extracted into the cwd, so best use this "function" with
`cd $(SOME_WHERE) &&`.
The clumsy name `$(UNZIP_HERE)` is taken because the program "unzip"
takes the environment variable `UNZIP` as the source file, even if
another file name was given on the command line. The rationale for that
is that the hackers of "unzip" hate their users. Also they sacrifice
hamsters to Satan.
2014-07-16 00:29:18 +02:00
|
|
|
export DOWNLOAD_TO_FILE # Use `$(DOWNLOAD_TO_FILE) $(DESTINATION) $(URL)` to download `$(URL)` to `$(DESTINATION)`.
|
|
|
|
export DOWNLOAD_TO_STDOUT # Use `$(DOWNLOAD_TO_STDOUT) $(URL)` to download `$(URL)` output `$(URL)` to stdout, e.g. to be piped into `tar xz`.
|
|
|
|
export UNZIP_HERE # Use `cd $(SOME_FOLDER) && $(UNZIP_HERE) $(SOME_FILE)` to extract the contents of the zip file `$(SOME_FILE)` into `$(SOME_FOLDER)`.
|
2018-08-07 16:13:17 +02:00
|
|
|
|
|
|
|
export LAZYSPONGE # Command saving stdin to a file only on content update.
|
|
|
|
export LAZYSPONGE_FLAGS # Parameters supplied to LAZYSPONGE.
|