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

297 Commits

Author SHA1 Message Date
cladmi
19e1731993
Makefile.include: always include board Makefile.features
makefiles/info-global.inc.mk already includes this file unconditionally.
So it is misleading to say it is optional.
2018-09-10 18:33:45 +02:00
adb25fb075 make: add global test target 2018-09-07 15:13:08 +02:00
Gaëtan Harter
cc63d2d21c
genconfigheader: use lazysponge for file management
Remove file management from `genconfigheader` script and use `lazysponge` in
Makefile.include.

Use --verbose option when in non QUIET building mode.
2018-08-20 11:34:55 +02:00
Gaëtan Harter
94f2a499a3
make: add LAZYSPONGE and LAZYSPONGE_FLAGS variables 2018-08-20 11:34:52 +02:00
Gaëtan Harter
623e3e156d
Merge pull request #9730 from miri64/make/enh/toolchain-supported-list
make: provide support for listing supported and blacklisting toolchains
2018-08-16 17:11:26 +02:00
Martine Lenders
814a7c3a21 Makefile.include: add output for unsupported toolchains
Assuming `TOOLCHAIN_SUPPORTED` is provided by the board and
`TOOLCHAIN_BLACKLIST` by a module or `pkg`, this outputs the fact that
a toolchain is not supported or blacklisted in a similar manner as
(un-)supported features and boards are.
2018-08-16 16:41:58 +02:00
Joakim Nohlgård
dda55731ff Makefile.include: Remove -Wno-implicit-fallthrough 2018-08-14 10:20:37 +02:00
Joakim Nohlgård
9e5dd332cf Makefile.include: Set CCACHE_CPP2 to fix false warnings 2018-08-14 10:20:14 +02:00
Gaëtan Harter
67e3b3a8dd
Merge pull request #9761 from cladmi/pr/release/version
Makefile.include: Include VERSION file for release
2018-08-10 16:49:17 +02:00
Gaëtan Harter
5c9213dfc6
Makefile.include: Include VERSION file for release
When downloading the release archive and building an example, the RIOT_VERSION string is not set to "Version 2018.04" but to
    
    Version: UNKNOWN (builddir: /home/me/Downloads/RIOT-2018.04)

This allows sourcing a global VERSION file to manually set it before releases.
2018-08-10 16:15:56 +02:00
smlng
68a6ba8987 make: introduce common Python lib path
Introduce dist/pythonlibs directory to store RIOT python packages.
This directory is exported via PYTHONPATH by the build system to
make it commonly available.
2018-08-10 11:37:43 +02:00
Juan Carrano
2ba8683315 Makefile.include: Make config header FORCE instead of PHONY. 2018-07-25 12:35:06 +02:00
Juan Carrano
c60a06b058 Makefile.include: Make eclipsesym.xml FORCE (not PHONY). 2018-07-25 12:35:06 +02:00
Juan Carrano
b86a326de6 Makefile.include: Make archives FORCE instead of PHONY. 2018-07-25 12:35:06 +02:00
Juan Carrano
8667758cb0 Makefile.include: make pkgs Makefile.include FORCE instead of PHONY
The rule to rebuild the Makefile.include(s) should be removed at some
point.
2018-07-25 12:35:06 +02:00
Juan Carrano
5ce0720bcf Makefile.include: Explain usage of FORCE and PHONY. 2018-07-25 12:35:06 +02:00
Martine Lenders
ff46796002 make: make BUILDRELPATH dependent on selected path
When selecting a directory to build using `-C` with make
`BUILD_IN_DOCKER` will fail, because the `BUILDRELPATH` chooses the path
`make` is executed in, not the path selected by `-C`. This fixes this
bug by replacing `PWD` in the macro's definition with `CURDIR`.
2018-07-16 15:15:04 +02:00
Gaëtan Harter
82c8d69f34
Makefile.include: remove debug '$(info)'
Remove debug '$(info)' added by https://github.com/RIOT-OS/RIOT/pull/9451
2018-07-10 18:37:06 +02:00
Gaëtan Harter
17545e4389
Merge pull request #9002 from cladmi/pr/makefiles/builddeps
make: Add 'BUILDDEPS' variable
2018-07-10 18:22:32 +02:00
smlng
98c02b8045 make: fix dedup USEMODULE_INCLUDES in Makefile.include
Fixes a regression introduces #9479 which breaks building on macOS.
    The introduces `uniq` function is never called, hence the includes
    ie. USEMODULE_INCLUDES are not used.
2018-07-10 15:41:33 +02:00
Cenk Gündoğan
202e73dcdf make: dedup USEMODULE_INCLUDES w/o shelling out
Currently, `USEMODULE_INCLUDES` is deduplicated using a combination of
`tr` and `awk`. The proposed method achieves a deduplication (no
sorting) without the need to shell out by using make internals only.
2018-07-09 15:06:38 +02:00
Gaëtan Harter
61f13baf14
Makefile.include: set pkg-prepare as BUILDDEPS
Use BUILDDEPS to define pkg-prepare dependency
2018-07-06 18:56:46 +02:00
Gaëtan Harter
2f41244adc
Makefile.include: set APPDEPS as BUILDDEPS
Use BUILDDEPS to define the APPDEPS dependency
2018-07-06 18:56:43 +02:00
Gaëtan Harter
ba83f1c9c6
Makefile.include: set RIOTBUILD_CONFIG_HEADER_C as BUILDDEPS
Use BUILDDEPS to define the RIOTBUILD_CONFIG_HEADER_C dependency
2018-07-06 18:56:39 +02:00
Gaëtan Harter
fb10a181a0
make: Add 'BUILDDEPS' variable
BUILDDEPS are files / make targets that should be build before compiling.
It can include packages source download, generating headers, modules.

It is the equivalent of `APPDEPS` but not limited to the application.
It cannot be done right now with `APPDEPS` as it is used in `BASELIBS` and
fixing it requires changing mips using it for source files.
2018-07-06 18:56:33 +02:00
Gaëtan Harter
534b0da9a5
Merge pull request #9451 from cladmi/pr/make/makefile_include/define_baselibs
Makefile.include: fully define BASELIBS before using its value
2018-07-05 13:37:27 +02:00
Gaëtan Harter
90fdd09176
Makefile.include: detect if BASELIBS changed after its first use 2018-07-04 10:23:05 +02:00
Gaëtan Harter
fb27a801af
Makefile.include: process pkg/*/Makefile.include before using BASELIBS
They can define PSEUDOMODULES which is used to populate BASELIBS.
It means they must be processed before using BASELIBS immediate value.

This moved the processing of all `Makefile.include` before using `BASELIBS`.
It is also moved before setting `BASELIBS` in `modules.inc.mk to keep the
order logical (it would work anyway thanks to deferred variables evaluation).

This fixes the problems for `make -C tests/unittests`
2018-07-04 10:22:57 +02:00
Gaëtan Harter
d8a264312c
Makefile.include: process 'modules.inc.mk' before using BASELIBS
Build targets were using the immediate value of '$(BASELIBS)' before it was
actually set. bindist.inc.mk should also be processed before as it is adding
`BIN_USEMODULE` to `USEMODULE`.

This fixes use before define problems for:

 * `make -C examples/hello-world`
 * `make -C examples/bindist`
2018-07-04 10:20:49 +02:00
Gaëtan Harter
f7f2494426
Makefile.include: fix board/cpu inconsistent include order
Include order for board and cpu was

1. cpu include
2. board include
3. board common includes
4. cpu common includes

Its now changed to:

1. board include
2. board common includes
3. cpu include
4. cpu common includes

Verifications:

There are no common headers names between boards and cpus.
Except native that has a 'periph_conf.h' in cpu instead of being in board.
2018-07-04 09:20:01 +02:00
Joakim Nohlgård
b36afc3964 make: Clean up WERROR handling 2018-06-26 12:50:02 +02:00
Gaëtan Harter
acef97aa15
Merge pull request #9243 from cladmi/pr/warning/missing_include_dirs
makefiles/cflags.inc.mk: add -Wmissing-include-dirs flag
2018-06-18 13:13:54 +02:00
Gaëtan Harter
3bba0c5895
makefile.iotlab.single: add IoT-LAB testbed support for one node
Add support to do flash/reset/term on an IoT-LAB node.
It also allow running test using 'testrunner'.

Configuration variables are:

* `IOTLAB_NODE` which should be set to your node url
  * The full url including site to use from your computer `m3-1.grenoble.iot-lab.info`
  * The short url when used on the IoT-LAB frontend `m3-1`
* `IOTLAB_EXP_ID` for your experiment id for flash and reset.
  By default it tries to use your currently running experiment if you have only one
* `IOTLAB_USER`: is read from `${HOME}/.iotlabrc` as saved by `iotlab-auth`
  * It is expected to have run `iotlab-auth` beforehand.
2018-06-15 15:37:18 +02:00
Gaëtan Harter
d44e4c1f7f
Makefile.include: only use board include directory if it exists
Some boards do not have a boards/BOARD/include directory and rely on a
board/common one.
2018-06-12 14:08:13 +02:00
Gaëtan Harter
98d33a5eca
Makefile.include: use RIOTTOOLS variable 2018-05-09 18:01:44 +02:00
smlng
a83d53f2d9
make: add and export RIOTTOOLS directory
Replacing usage will come in further commits/PRs.
2018-05-03 15:56:00 +02:00
Josarn
1dd7ac0575 Makefile.include: add SIZEFLAGS 2018-04-27 12:23:06 +02:00
Gaëtan Harter
94214cdcae Makefile.include: fix missing target for libraries
Unittests add libraries in 'BASELIBS' which do not have any rules to be built as
they are built by 'application.inc.mk', packages and the DIRS variable.
So make complains about missing target for the unittests archives.

The fix tells these files are generated when building '$(APPLICATION_MODULE).a'.

The bug was introduced by #8844

Fixes #8910
2018-04-16 12:54:41 +02:00
cladmi
45dad9a9d1 Makefile.include: check FEATURES_CONFLICT against FEATURES_USED
The FEATURES_CONFLICT check should be done on used features to also
test for included optional features.
2018-04-11 17:45:41 +02:00
cladmi
ae5e883bca Makefile.include: add targets to get .elf/.bin/.hex 2018-04-09 17:32:46 +02:00
cladmi
70c5079b16 Makefile.include: add %.hex and %.bin rules
Replace HEXFILE rule by a rule for each type.
HACK: Adding '-Oformat' after OFLAGS overwrite the value in flags.
2018-04-09 17:32:46 +02:00
Gaëtan Harter
f64de068b3 Makefile.include: separate link in subtargets
* Add ELFFILE, HEXFILE, print-size targets

$(BINDIR)/$(APPLICATION_MODULE).a target builds libraries in RIOT and in DIRS.

Uses a FORCE phony target dependency to force rebuilding but still let
`make` use the file modification timestamps
2018-04-09 16:50:53 +02:00
Gaëtan Harter
a83c8d220d Makefile.include/OSXNATIVE: refactor into _LINK
Refactor osx-native linker rule into `_LINK` too.
2018-04-09 16:50:52 +02:00
35c73c83d0 make: add test-murdock target 2018-03-28 18:28:42 +02:00
Gaëtan Harter
655186c986 Makefile.include: rm deprecated comment on default goal 2018-03-28 17:32:11 +02:00
Gaëtan Harter
92535234a2 Makefile.include: add an assert that .DEFAULT_GOAL is all 2018-03-28 16:59:00 +02:00
Gaëtan Harter
fff5810191 Makefile.include: FIX .DEFAULT_GOAL not being all
.DEFAULT_GOAL was reset many times which removed 'all' from being the default
goal.
By chance it was then set to `link` so was working by some magic.
2018-03-28 16:59:00 +02:00
Gaëtan Harter
fce7a5409d Makefile.include: refactor command present check
Refactor the code checking if command is present.
Message is taken from the compiler check as it was more precise than the others.
2018-03-27 15:46:48 +02:00
61f1b941ce make: replace curly braces with parenthesis 2018-03-22 20:43:15 +01:00
Francisco Acosta
2e066e8693
Merge pull request #8492 from cladmi/pr/prepend_app_module_by_application
makefiles: Add an APPLICATION_MODULE variable
2018-02-28 12:13:14 +01:00