1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #10270 from cladmi/pr/make/pre_post_include

Makefile.include: allow specifying makefiles to be parsed
This commit is contained in:
Kevin "Bear Puncher" Weiss 2018-12-07 17:42:21 +01:00 committed by GitHub
commit 35626eda50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 52 additions and 0 deletions

View File

@ -1,6 +1,11 @@
# 'Makefile.include' directory, must be evaluated before other 'include'
_riotbase := $(dir $(lastword $(MAKEFILE_LIST)))
# include RIOT_MAKEFILES_GLOBAL_PRE configuration files
# allows setting user specific system wide configuration parsed before the body
# of $(RIOTBASE)/Makefile.include
include $(RIOT_MAKEFILES_GLOBAL_PRE)
# Globally set default goal to `all`
.DEFAULT_GOAL := all
@ -730,3 +735,8 @@ ifneq ($(_BASELIBS_VALUE_BEFORE_USAGE),$(BASELIBS))
endif
endif # BOARD=none
# include RIOT_MAKEFILES_GLOBAL_POST configuration files
# allows setting user specific system wide configuration parsed after the body
# of $(RIOTBASE)/Makefile.include
include $(RIOT_MAKEFILES_GLOBAL_POST)

View File

@ -765,6 +765,7 @@ INPUT = ../../doc.txt \
src/creating-modules.md \
src/creating-an-application.md \
src/getting-started.md \
src/advanced-build-system-tricks.md \
src/changelog.md \
../../LOSTANDFOUND.md

View File

@ -0,0 +1,40 @@
Advanced build system tricks {#advanced-build-system-tricks}
============================
[TOC]
Introduction {#introduction}
============
This page describes some build systems tricks that can help developers but are
not part of the standard workflow.
They are low level commands that should not be taken as part of a stable API
but better have a documentation than only having a description in the build
system code.
Customize the build system {#customize-build-system}
==========================
+ `RIOT_MAKEFILES_GLOBAL_PRE`: files parsed before the body of
`$RIOTBASE/Makefile.include`
+ `RIOT_MAKEFILES_GLOBAL_POST`: files parsed after the body of
`$RIOTBASE/Makefile.include`
The variables are a list of files that will be included by
`$RIOTBASE/Makefile.include`.
They will be handled as relative to the application directory if the path is
relative.
Usage
-----
You can configure your own files that will be parsed by the build system main
`Makefile.include` file before or after its main body, examples usages can be:
* Globally overwrite a variable, like `TERMPROG`
* Specify a hard written `PORT` / `DEBUG_ADAPTER_ID` for some BOARD values
* Define your custom targets
* Override default targets

View File

@ -235,6 +235,7 @@ Further information {#further-information}
- @ref getting-started
- @ref creating-an-application
- @ref creating-modules
- @ref advanced-build-system-tricks
<!--
Idea for this section: just name each of RIOT's main features/concepts and link