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

567 Commits

Author SHA1 Message Date
Francisco Acosta
281d8084bf riotboot: add riot-based minimal bootloader
riotboot is introduced here and makes use of riotboot_hdr,
which indentifies the images encapsulated as slots.
The slot size and offset is configurable, which makes
slots extendable if needed, e.g. 2 or more slots can be
transparently added.

Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
Co-authored-by: Gaëtan Harter <gaetan.harter@fu-berlin.de>
2018-12-18 19:31:35 +01:00
Gaëtan Harter
321dc5292f
Merge pull request #10548 from jcarrano/flash-canned-recipe
Makefile.include: flash: do not peek into MAKECMDGOALS.
2018-12-18 14:09:55 +01:00
Juan Carrano
ae524e917f Makefile.include: flash: do not peek into MAKECMDGOALS.
When flash-only was introduced (in #8373), the `flash` rule was
made conditionally dependent on `all` by looking for `flash-only`
in MAKECMDGOALS. This was done to avoid code duplication.

There's a cleaner way, by using canned recipes. When we upgrade the
requirements to gnu make 4, the flash recipe can be defined as ?=.
2018-12-18 13:15:50 +01:00
Juan Carrano
8945a9513e Makefile.include: remove rule to remake PKGs' Makefile.include
This rule is not being used, it complicates the makefile and causes
make clean to permform unnecessary actions.

All packages have a Makefile.include, so the rule is not needed anyways.
Also, it is defined with a double colon for no reason.
2018-12-07 17:49:22 +01:00
Kevin "Bear Puncher" Weiss
35626eda50
Merge pull request #10270 from cladmi/pr/make/pre_post_include
Makefile.include: allow specifying makefiles to be parsed
2018-12-07 17:42:21 +01:00
Gaëtan Harter
efddd4aef9
Makefile.include: allow specifying makefiles to be parsed
This allows specifying a list of files that should be parsed by make at
the beginning and at the end of Makefile.include.

It is a generic mechanism to allow specifying system wide configuration:

* Globally overwrite the 'TERMPROG'
* Specify a hard written port / debug_adapter_id for some BOARD values
* Define you own specific targets
* Override default targets

It can include file before and after Makefile.include to allow handling
different configurations.
2018-12-06 14:49:34 +01:00
Gaëtan Harter
135d2f7fba
Makefile.include: building in docker should be done after clean
When building in parallel, clean is done at the same time as the
container starts building.

So the parallel `clean all` handling should also be done for the
`..in-docker-container` target.
2018-12-06 12:34:22 +01:00
Juan Carrano
e666c3864c eclipse.inc.mk: Split eclipse support into it's own file.
To keep Makefile.include clean and to be consistent with other tools,
the Eclipse IDE support is put in a separate file.
2018-12-05 15:22:42 +01:00
Juan Carrano
4589c3b8d3 Makefile.include: remove functionality to build with another version.
Makefile.include contained logic to clone a different RIOT version and
build the application against it. This can be easily achieved by making
a git worktree and overriding RIOTBASE, without adding any complexity
to our makefiles. Therefore, the feature is being removed.
2018-12-04 16:18:07 +01:00
Gaëtan Harter
2fc5ad6bae
Merge pull request #10302 from cladmi/pr/make/docker/fix_riotproject_is_appdir
Makefile.include: Fix BUILDRELPATH when RIOTPROJECT is CURDIR.
2018-11-01 09:46:33 +01:00
Gaëtan Harter
a5b2af1baf
Makefile.include: Fix BUILDRELPATH when RIOTPROJECT is CURDIR.
This fixes building an example that is outside of RIOT with docker and
also fixes building from a release archive.
2018-10-30 17:16:07 +01:00
Gaëtan Harter
f82ace910f
Makefile.include: Fix default RIOTBASE when there is Makefile.local
When an application only includes Makefile.include without specifying
RIOTBASE and uses a `Makefile.local` file, RIOTBASE would use a wrong
default value and get the value of the directory where `Makefile.local` is.
2018-10-30 17:08:57 +01:00
smlng
7d1bf26128 build: remove hostname from RIOT_VERSION string
The hostname does not provide any additional or necessary information to
the RIOT_VERSION string. On the contrary, some might consider the hostname
as personal information, which should not be exposed unsolicitedly.
2018-10-29 09:02:47 +01:00
Gaëtan Harter
357a4a0db9
makefiles: make the build system aware of GIT_CACHE_DIR
Currently the default value was set by `dist/tools/git/git-cache`.
This moves/duplicates the default value in the build system.
2018-10-23 15:00:47 +02:00
Gaëtan Harter
6b534a935f
make: process include and dep for external modules
Process `Makefile.include` for external modules. It is included after the others
so it could overwrite some of the configuration if wanted.

Process `Makefile.dep` for external modules. It is included before the others so
it could be parsed before setting 'default' values to dependencies.
2018-10-23 13:22:25 +02:00
cladmi
d809d82b91
Makefile.include: sanity check that cpu Makefile.features is used
This prepares for being able to always include Makefile.features
globally. It prevents new board for missing this until it is done.
2018-10-11 17:12:47 +02:00
cladmi
4652cb2b28
Makefile.include: Replace pkg archive file targets by phony targets
It fixes issues with the current rule that it is wrong that each
`$(BINDIR)/pkgname.a` is built by going in the package directory:

* `nordic_softdevice_ble.a` is built using `DIRS` and so the
  `$(APPLICATION_MODULE).a` target.
* It prevents having packages that are pseudomodules, which may be
  required to only use one "library" part of a package.

It also simplifies handling changes in 'ld -r' PR that could produce
objects instead of archives for packages.

Limitation of the current implementation
----------------------------------------

It removes rules being 'file' target and makes them depend on `.PHONY`
targets so always forces re-build.
But having a file target whose file is silently generated by another
target does not trigger a rebuild in Make.

They may have been declared as `order-only` prerequisites but as there are
some edge-cases that may not always work and does not currently add anything,
it was decided to keep them as normal prerequisites until it can be
globally solved.
2018-09-20 15:47:42 +02:00
cladmi
8a6771ac50
Makefile.include: do not create BINDIR for usepkg build
BINDIR has already have been created by `pkg-prepare` and the real build
directory for the package will be created by the make target itself.
2018-09-20 14:20:54 +02:00
cladmi
e082ee6766
Makefile.include: add a target name in usepkg build target
Explicit the target name so the stem can be extracted.
2018-09-20 14:20:29 +02:00
cladmi
5f3d0eab4d
Makefile.include: also detect features and blacklist on flash
Now also print warnings if there are missing features or a blacklisted
board when doing 'make flash'

Before, only when doing 'make' or 'make all' the FEATURES_REQUIRED,
BOARD_BLACKLIST/WHITELIST and TOOLCHAINS were checked and a warning was printed.

However as 'flash' triggers 'all' it is a common case to do 'make flash'
directly instead of 'make all flash'. So better also print warnings in
this case.
2018-09-18 16:19:03 +02:00
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
Jose Alamos
67cbcfb588 make: add flag for no-implicit-fallthrough in CXXFLAGS 2018-02-22 14:28:22 +01:00
Joakim Nohlgård
745f1fc38f
Merge pull request #8365 from beduino-project/fix-clang-5.0-build
makefiles: always link with GCC even if TOOLCHAIN is set to LLVM
2018-02-21 15:13:57 +01:00
Sören Tempel
55b026b349 Makefile.include: Introduce LINKXX variable
This variable can be used to specify the linker which should be used to
link C++ object files. This is needed in order to use g++ for linking
with TOOLCHAIN=llvm.
2018-02-21 12:26:20 +01:00
1c091cc462 make: always set -Wno-implicit-fallthrough 2018-02-20 15:45:18 +01:00
smlng
c4194d4ba9 make: add flash-only target 2018-02-13 17:21:28 +01:00
Gaëtan Harter
d724e71a26 makefiles: Add an APPLICATION_MODULE variable
Set the application module name with APPLICATION_MODULE.
The default module name is "application_$(APPLICATION)".

This should fix name conflicts where an application/test has the same name as
an existing module and so both write to the same archive.
2018-01-30 17:27:03 +01:00
Joakim Nohlgård
33d73d3e5a Makefile.include: Remove --cref from linking flags
Seem to cause internal linker errors and linker segfaults under some
circumstances when using gold as the linker.
2017-12-08 12:02:10 +01:00
smlng
57c5c9b6a6 make: enable Wall and Wextra by default, and optionally Wpedantic 2017-11-28 20:33:39 +01:00
Martine Lenders
16e2829258
Merge pull request #7959 from antmicro/feature/renode-integration
makefiles: tools/renode: add support for Renode
2017-11-24 18:43:31 +01:00
smlng
a7bc9afc4b make: allow for DEVELHELP env variable 2017-11-20 15:56:36 +01:00
Piotr Zierhoffer
b424274a72 makefiles: tools/renode: add support for Renode 2017-11-08 12:43:09 +01:00
268e763d63 make: move mcuboot related stuff to makefiles/mcuboot.mk 2017-11-07 12:28:41 +01:00
8965e9e26c make: make features available to Makefile.include 2017-11-06 12:01:19 +01:00
625d2449d8 make: fix nproc for buildtest 2017-09-20 21:07:11 +02:00
daa277b36e make: refactor info- and buildtest targets 2017-09-14 13:15:53 +02:00
Hauke Petersen
29ee609a2f Merge pull request #7266 from kaspar030/pkg-prepare
make: introduce pkg-prepare target
2017-08-29 17:53:35 +02:00
kYc0o
0dfcc72343 Makefile.include: add multislot makefile 2017-07-06 23:26:56 +02:00
93fb2cee47 make: introduce pkg-prepare target 2017-06-28 14:34:23 +02:00
d69352a237 dist/tools: add dlcache.sh 2017-06-17 17:00:55 +02:00
Hauke Petersen
3098a277ed Makefile.include: add optional TERMDEPS to make term 2017-05-23 14:25:11 +02:00
Hauke Petersen
0d9ba806bc make/tools: added shared script+mk for using BOSSA 2017-05-22 11:42:01 +02:00
Hauke Petersen
fb82e246d9 tools: add means to download and build BOSSA 2017-05-22 11:42:00 +02:00
Joakim Nohlgård
339a4da9dc Makefiles: move to new directory /makefiles 2017-04-04 15:11:54 +02:00
smlng
53b0dd1777 make: set default toolchain for board native on macOS to llvm 2017-03-22 23:07:22 +01:00
95441004b3 make: introduce PKGDIRBASE 2017-03-10 14:18:44 +01:00
47f6ff3056 Merge pull request #6237 from kaspar030/rename_AD_to_Q
make: rename AD to Q
2017-01-17 16:16:02 +01:00
ac9b12263a make: factor out features handling, add default feature handling 2017-01-12 16:26:01 +01:00
fd07b5fd27 make: introduce QQ, use when doing CI build 2016-12-22 23:53:51 +01:00
f44763f346 make: adapt Makefiles to AD -> Q rename 2016-12-22 12:12:38 +01:00
a5603ec1b3 make: rename AD variable to Q 2016-12-22 12:12:38 +01:00
Joakim Nohlgård
d4f2070e8b make: Correct multilib detection when using LLVM
The LLVM makefile needs to be included _after_ the CPU makefiles have
set their CFLAGS in order to get the right multilib directory from GCC.
2016-12-21 13:03:58 +01:00
537b725aed make: introduce RIOT_CI_BUILD (#5162) 2016-12-17 00:17:26 +01:00
560a509036 make: remove trailing slash from BINDIR variable 2016-10-18 23:27:59 +02:00
Cenk Gündoğan
2b3d3995f1 make: export RIOT_VERSION to CFLAGS_WITH_MACROS
All macros are filtered out of the `CFLAGS` variable and during this
process, the `CFLAGS` string is destroyed. This is due to the fact that
the `RIOT_VERSION` string contains spaces, but the filtering process does
not take the whole string into account (following the first space). This
leads to some parts of the `RIOT_VERSION` string be sill existent in the
`CFLAGS` string.

Instead of exporting the `RIOT_VERSION` string to the `CFLAGS` macro to
just remove it again from there, I exported it to `CFLAGS_WITH_MACROS`.

Fixes #5859
2016-09-23 09:02:55 +02:00
Martine Lenders
55a08aeb59 Merge pull request #5827 from miri64/make/enh/quiet-per-default
make: build quiet as default
2016-09-12 16:59:59 +02:00
Martine Lenders
043eb677dd make: build quiet as default 2016-09-06 18:20:02 +02:00
Ludwig Knüpfer
dc183736bc make: include RIOT_VERSION in CFLAGS for riotbuild
fixes #5695
2016-07-27 09:23:39 +02:00
kYc0o
9ba2e5372d Merge pull request #5248 from cgundogan/pr/make/buildrelpath
make: BUILDRELPATH without call to git
2016-07-22 17:05:03 +02:00
1b0d9ef14b make: treat packages like modules when it comes to linking 2016-07-20 19:58:17 +02:00
Joakim Nohlgård
a678e868e9 Makefile.include: Move USEMODULE CFLAGS expansion last
Some USEMODULE parts (e.g. defined in ${BOARD}/Makefile.dep) were not
being properly exported to CFLAGS -DMODULE_xxx options.
2016-07-13 16:44:28 +02:00
Joakim Nohlgård
ffb4573667 Merge pull request #5097 from gebart/pr/make-include
make: Place most configuration macros in a separate file instead of on the command line
2016-07-07 18:03:18 +02:00
a1f8891a41 make: distclean pkg sources on clean-intermediates target 2016-07-06 17:33:28 +02:00
Joakim Nohlgård
77a15e7886 make: Place most configuration macros in a separate file instead of on the command line 2016-07-05 11:22:58 +02:00
Cenk Gündoğan
1d79e07051 make: BUILDRELPATH without call to git 2016-05-18 08:22:08 +02:00
Cenk Gündoğan
e26bb43a03 make: fix typo 2016-04-21 10:57:26 +02:00
Cenk Gündoğan
7383957a8d make: remove obsolete check for jenkins 2016-04-21 10:57:19 +02:00
Cenk Gündoğan
8a85725cf9 Merge pull request #5221 from Kijewski/rm-rf-safe
make: bail out if there are spaces in the path
2016-04-20 23:47:01 +02:00
René Kijewski
1593bf4d32 make: no need to invoke shell to get dir name 2016-04-20 23:22:43 +02:00
René Kijewski
e71e60e567 make: bail out if there are spaces in the path
If we use `rm -r(f)` then we should make sure that we don't delete
random directory trees because there was a whitespace in the path.
2016-04-20 23:22:43 +02:00
René Kijewski
5a6fcbc005 make: always use absolute path 2016-04-19 00:34:01 +02:00
Toon Stegen
f3ccc3b5cb make: clean up output
Remove space at begginning or error output line.
2016-04-01 12:15:46 +02:00
Toon Stegen
0221e6d885 make: don't print some test commands
When invoking make with QUIET=0 these test are printed to stdout, which
could be confusing.
2016-04-01 12:15:46 +02:00
Oleg Hahm
506e23f481 Merge pull request #2362 from kaspar030/add_lgpl_compliance_simplified
add infrastructure for binary LGPL compliance checks
2016-03-30 13:56:02 +02:00
Cenk Gündoğan
4e82028a9d Merge pull request #5170 from OTAkeys/use_APPDIR_iso_CURDIR
Makefile.include: use defined application directory
2016-03-30 13:19:06 +02:00
Toon Stegen
d5195b6bbc make: Use defined application directory
Instead of looking in the current directory for the application source
files, look into the defined APPDIR directory.
2016-03-30 12:23:26 +02:00
c04877dd95 make: add bindist targets / Makefiles 2016-03-29 22:46:28 +02:00
71e46a5ce6 make: add clean-pkg target (cleaning extracted & patched pkg sources) 2016-03-25 14:28:04 +01:00
Oleg Hahm
91d84b09f3 make: also add pkg include paths 2016-03-22 16:05:29 +01:00
Oleg Hahm
16a3f131a3 Merge pull request #5112 from kaspar030/use_git_cache
make: pkg: introduce git-cache
2016-03-21 22:32:33 +01:00
772657253f dist: tools: add git-cache 2016-03-21 21:22:33 +01:00
Joakim Nohlgård
cad5f08b56 Makefile.include: Set PREFIX if not set 2016-03-21 12:19:30 +01:00
Oleg Hahm
a82556d818 make: always include toolchain dependent Makefile 2016-03-15 12:02:53 +01:00
Cenk Gündoğan
dc509f030d dist/tools/desvirt: proper integration 2016-03-10 18:29:09 +01:00
Oleg Hahm
8986b98281 make: check if APPLICATION is set
Fixes #1282.
2016-03-08 21:08:04 +01:00
8b7ddb2f70 make: use variable for pkg subdir 2016-03-05 03:05:32 +01:00
Joakim Nohlgård
04c8a18493 Merge pull request #4939 from OlegHahm/version_string_fix
make: use single ticks
2016-03-04 15:53:04 +01:00
Oleg Hahm
61579d3be4 Merge pull request #4887 from locicontrols/objdump
make: set OBJDUMP = $(PREFIX)objdump for gnu targets.
2016-03-01 23:10:04 +01:00
Oleg Hahm
4c6b59b486 make: use single ticks
Otherwise the shell will try to evaluate the parentheses.
2016-03-01 20:38:01 +01:00
Oleg Hahm
7a979e3db4 make: actually make use of APPDEPS for building 2016-02-26 15:03:10 +01:00
Ian Martin
332d8c7818 make: use $(OBJDUMP) and $(OBJDUMPFLAGS) in the main objdump target too. 2016-02-24 12:14:05 -05:00
Hauke Petersen
da485b9e2a make: add board as default module 2015-12-07 17:53:22 +01:00
test
16e958e3b9 make: include Makefile.iotlab for iotlab-* goals 2015-11-28 21:26:46 +01:00
0117192901 make: add support for additional local Makefile 2015-11-19 11:38:49 +01:00
Lucas Jenss
d80f18de0b Minor usability improvements for samr21 usage 2015-10-27 19:43:40 +01:00
Thomas Eichinger
24e9de65e1 native: exclude emtpy archives from linking on OSX
OS X linker won't link archives consisting of the archives header only.
2015-09-03 11:55:59 +02:00
Iván Briano
5f4a5aecb2 make: Get the git directory from RIOTBASE
This allows having applications outside of RIOT's own git directory and
still get the correct branch information for the build.
2015-08-27 16:29:10 -03:00
a670766943 make: add info-modules make target 2015-08-26 08:10:04 +02:00
Martine Lenders
64c6d49cbd iot-lab_M3: rename to iotlab-m3 2015-08-19 20:59:06 +02:00
Martine Lenders
d46f542220 iot-lab_M3: rename to iotlab_m3 2015-08-19 18:29:17 +02:00
Martine Lenders
58ff31bfe9 gnrc: make all gnrc modules sub-modules of gnrc 2015-08-18 23:00:07 +02:00
c72538a6cf make: ccache: set ccache basedir to RIOTBASE 2015-08-14 00:31:36 +02:00
Martine Lenders
e1842869da make: make NG_NETIF_NUMOF available in build system 2015-08-11 02:49:19 +02:00
Joakim Gebart
e95a4c50a9 make: Build with -Werror by default
Can be overridden from the environment by setting WERROR=0

also remove reversed logic for Werror in Makefile.buildtest
(a typo caused Werror to be always enabled for all builds)
2015-08-04 08:37:39 +02:00
Oleg Hahm
802b3d9c00 make: remove scan-build folder in clean 2015-07-22 20:30:34 +02:00
Joakim Gebart
13753cca14 Makefile.scan-build: Add make goal for running Clang static code analysis 2015-07-21 18:42:38 +02:00
Thomas Eichinger
85ab42dd30 Merge pull request #3262 from gebart/pr/map-cross-reference
Makefile.include: Add --cref to linker options
2015-07-20 17:01:41 +02:00
Martine Lenders
0c424716a6 make: auto-include testbed support for IoT-LAB 2015-07-18 10:54:47 +02:00
Joakim Gebart
ee8a8be09e Makefile.include: Add clean-intermediates target 2015-07-10 16:49:36 +02:00
Philipp Rosenkranz
538c992919 make: delete emptyarchive after test 2015-07-02 20:16:26 +02:00
Joakim Gebart
726d7e60b2 Makefile.include: Add --cref to linker options
The --cref option generates a detailed cross reference list in the map file.
Useful for checking what functions are referenced from where.
2015-06-25 14:59:15 +02:00
Joakim Gebart
b54c9d21ee dist: Add tool for generating Eclipse setting XML files
Usage: make eclipsesym (in application directory)
2015-06-01 17:53:44 +02:00
5a598b64b4 make: introduce RIOT_VERSION_OVERRIDE
Allows overriding of -DRIOT_VERSION regardless of the version actually
used. Necessary for reproducable compiles.
2015-05-29 09:45:40 +02:00
Martine Lenders
bac1ac3b59 make: actually disable a DISABLED_MODULE 2015-05-09 19:10:03 +02:00
Joakim Gebart
2682c38ee8 Merge pull request #2923 from gebart/pr/docker-buildtests
Docker: allow buildtests inside Docker, refactor environment handling.
2015-05-08 16:20:46 +02:00
BytesGalore
f9a79eee41 RIOT/Makefile.include: added compile time warning on conflicting features 2015-05-07 21:05:08 +02:00
Joakim Gebart
3b85f10217 docker: Refactor Makefile.include, split to Makefile.docker
- Better support for passing environment variables to the Docker container.
 - Move Docker-related definitions into Makefile.docker.
 - Only environment variables that originates from the command line or
   the environment will be passed to the Docker container.
2015-05-06 14:03:45 +02:00
haukepetersen
56cce19578 make: added APPDIR as environment variable 2015-04-30 15:08:48 +02:00
Joakim Gebart
8db628b17c Makefile.include: Add docker target.
export BUILD_IN_DOCKER=1 to use Docker for building inside a Docker
container.
GDB debug file paths will be wrong after building inside the container,
use the script provided in `dist/gdbinit-docker` to set the correct GDB
substitution paths (copy and paste the contents into your `~/.gdbinit`)

The environment variable DOCKER_FLAGS can be used to pass extra
parameters to the Docker process.
2015-04-24 16:03:52 +02:00
Oleg Hahm
18bf9529f2 make: check for board existence 2015-02-23 09:09:09 +01:00
Oleg Hahm
20067567d1 make: check for existence of tools 2015-02-23 09:09:04 +01:00
Oleg Hahm
984effd5b8 make: added a check for compiler existence 2015-02-23 09:09:04 +01:00
Joakim Gebart
5e2b9f52ba Makefile.include: Refactor ar-wrapper test.
llvm-ar does not understand `-rc`, but works for creating empty
archives when called with `rc` (without the leading dash). BSD `ar`
which ships with OSX, which the test is written for, understands the
argument with or without the leading dash (but does not support creating
empty archives.)
2015-02-08 20:08:14 +01:00
Oleg Hahm
dbca0d0dd4 make: add target to list available targets 2015-01-28 12:42:08 +01:00
Ludwig Ortmann
66a6aae1a8 make: escape unknown version string 2015-01-05 11:33:19 +01:00
Oleg Hahm
aef6256cc5 make: include DEFAULT_MODULES from cpu and boards 2014-12-25 16:32:56 +01:00
Ludwig Ortmann
049a6880c1 make: change escaped quotation marks
The '""' pattern is used so that the variable can be processed as a string
after the preprocessors evaluation. Change to \"\" instead, so that single
quotes can be used externally. The extra quotation marks are unneeded.

Related to #2213
2014-12-20 18:53:51 +01:00
Thomas Eichinger
d7d45482af make: migrate OS variable for COLOR_ECHO too 2014-12-15 16:16:44 +01:00
René Kijewski
0d6bc7eba6 Merge pull request #1913 from Kijewski/issue-1910
make: allow tagged RIOT_VERSION
2014-12-11 17:46:43 +01:00
René Kijewski
19a017cf03 make: term depends on flash
If you provide both `flash` and `term` as Make goals, then `term` needs
to wait for flash.
2014-12-11 14:23:39 +01:00
René Kijewski
bfbb1a353d Merge pull request #1924 from OlegHahm/strip_application_name
make: strip white space from application name
2014-11-23 15:51:42 +01:00
Oleg Hahm
6bdf6a1577 make: strip APPLICATION variable
Trailing white spaces in the application Makefile will cause the build
system to fail otherwise.
2014-11-23 15:46:39 +01:00
René Kijewski
e4ae8eaa6e make: allow tagged RIOT_VERSION 2014-11-21 17:06:46 +01:00
Ludwig Ortmann
6c9907b357 make: reintroduce dependency from flash to all 2014-11-19 15:04:51 +01:00
René Kijewski
3ed9a169b1 make: remove downloader "axel"
Breaks for `make -B`. If the file already exists, then `axel` fails
because it does not find the status file for the download.
2014-11-08 15:27:34 +01:00
Ludwig Ortmann
2c9c8bf2e0 make: remove dependency from flash to all
* print message when no hex file is found instead
* add objcopy for native so that flash can succeed
2014-10-31 10:31:47 +01:00
René Kijewski
765c88d08a make: allow drivers to implement features
This change allows drivers (or any module for that matter) to provide
features. This is e.g. useful if a board does not have a transceiver,
but your application uses `USEMODULE += some_driver`, which implements
the transceiver interface.

The line `FEATURES_PROVIDED += some_feature` should go to the guarded
block in `{sys,drivers}/Makefile.include`.
2014-10-26 23:54:10 +01:00
René Kijewski
162850b332 make: Implement optional features
Fixes #1876

This PR introduces `FEATURES_OPTIONAL` which can be used to tell the
Make system, that the application would like to use some feature, but
the build should proceed even if the selected board cannot provide the
optional feature.

`make buildtest` and `make info-supported-boards` heed this variable
when examining the list of supported boards.

If a word is present in `FEATURES_REQUIRED` and `FEATURES_OPTIONAL`,
then `FEATURES_OPTIONAL` takes precedence.
2014-10-26 23:18:58 +01:00
Ludwig Ortmann
c947dc9858 make: remove $(CLEANFILES), it's superfluous 2014-10-10 15:15:13 +02:00
Ludwig Ortmann
851a02bcb7 make: add clean, distclean for RIOT
distclean
removes all build products, also depends on docclean

clean
removes all build products for the current board

also, silence clean target from Makefile.include and let it ignore errors
2014-10-10 15:14:30 +02:00
René Kijewski
f49bd3e660 make: add Makefile.features telling the BOARDs' features
Please see #1715.
Closes #1715.

This PR implements the new Makefile variables "FEATURES_PROVIDED" and
"FEATURES_REQUIRED". A board *can* have a new file `Makefile.features`
which looks like:

```make
FEATURES_PROVIDED = transceiver
```

An application can have a corresponding line

```make
FEATURES_REQUIRED = transceiver
```

If the selected BOARD does not fulfil the requirements of the
application, then a *warning* is issued at compile time.

This change only includes the feature "transceiver", further features
are expected to be listed in further PRs. The requirement "transceiver"
is automatically added if the application uses the module
"defaulttransceiver".

`make buildtest` understands the new feature listing, so the user won't
need to add boards to `BOARD_BLACKLIST` manually.

Part of the change are the added Make targets
* `info-features-missing`, which prints the required features
  `\setminus` the provided features. The output is empty if there are no
  features missing.
* `info-boards-features-missing`, the same as `info-features-missing`
  but as a table for all boards, but heeded `BOARD_WHITELIST` and
  `BOARD_BLACKLIST`.

Applications don't have to use this new feature. This change does not
break existing Makefile.
2014-10-06 17:42:11 +02:00
Martine Lenders
50a185524f make: Allow for include of modules outside of the RIOTBASE path 2014-10-01 18:19:19 +02:00
Ludwig Ortmann
71b961bef7 make: .PHONY missing targets from Makefile.include 2014-09-27 08:11:44 +02:00
Ludwig Ortmann
9053cfe2de make: add objdump target 2014-09-27 08:11:29 +02:00
Martine Lenders
248a8531a5 make: Fix TERMFLAGS
Sometimes boards/*/Makefile.include (e. g. in case of the msba2) gets included
twice somehow, leading the TERMFLAG to be set twice and faulty. This
fixes that.
2014-08-22 01:09:55 +02:00
René Kijewski
a70ee0f022 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-08-21 19:07:52 +02:00
Martine Lenders
04489be771 [SQUASH ME] make: Move buildtest related PHONY targets to Makefile.buildtests 2014-08-13 21:24:07 +02:00
Martine Lenders
86d8dede48 [SQUASH ME] make: Add info prefix for non-building targets in Makefile.buildtests 2014-08-11 11:33:18 +02:00
Martine Lenders
30fc8671cd [SQUASH ME] make: move info-boards-supported to Makefile.buildtests 2014-08-11 11:28:17 +02:00
Martine Lenders
0c68712fa8 make: Add target to show if boards that are supported by apps 2014-08-09 03:33:45 +02:00
Hauke Petersen
34abdbe5f2 make: added targets 'debug-server' and 'reset'
- added targets to Makefile.include
- added DEBUGSERVER and RESET vars to Makefile.vars
- added output of those to Makefile.buildtests
2014-08-05 22:52:34 +02:00
Oleg Hahm
6340123558 make: introduced TERMFLAGS
Also added the missing -p flag for the new pyterm version where
necessary.
2014-08-01 17:09:45 +02:00
René Kijewski
b7b7fd3bc1 make: provide BOARD, MCU and CPU name as a string
This PR adds the defined `RIOT_BOARD`, `RIOT_CPU` and `RIOT_MCU`.
They each are defined as `BOARD_${BOARD}`, `CPU_${CPU}`, and
`MCU_${CPU}`, resp.

`BOARD_${BOARD}` is defined as the string `"${BOARD}"`, but not in upper
case. Same for the other two.
2014-08-01 02:40:40 +02:00
René Kijewski
f183730917 make: force traversal into PKG's, same as normal modules 2014-07-31 14:22:34 +02:00
Ludwig Ortmann
e677aa4ec0 make: add RIOTBASE to UNKNOWN RIOT_VERSION 2014-07-30 15:50:44 +02:00
Ludwig Ortmann
9d9d2aff93 make: make RIOT_VERSION fail-safe 2014-07-30 15:33:07 +02:00
Ludwig Ortmann
e5613d308a make: allow setting RIOT_VERSION externally
also make the RIOT_VERSION variable available in buildtest
2014-07-29 19:08:41 +02:00
René Kijewski
919cddef19 make: rename VERSION into RIOT_VERSION
Building MSP boards gives an error, because `VERSION` is somewhere
defined in their toolchain as an integer.

This PR renames `VERSION` into `RIOT_VERSION`, because that's what it
is.
2014-07-10 21:48:22 +02:00
René Kijewski
747138cf99 make: move exported make vars to one place 2014-07-10 15:20:37 +02:00
Leon George
215c9aae2b make: allow chosing ld-like over gcc-like options
make automatically adds '-Wl,' to linker-options. Supply `LINKFLAGPREFIX :=` to avoid that.
2014-07-05 01:33:08 +02:00
Pham Huu Dang Nhat
f7398f61ff Changed RIOT/Makefile.include, Makefile.base, Makefile.cflags, and native/Makefile.include to compile C and C++ files. 2014-06-25 22:26:10 +07:00
René Kijewski
2f66319a3a make: OSX: don't fail for empty .a archives
Fixes issue #1333.
2014-06-24 20:29:32 +02:00
René Kijewski
d19fc447ed make: make DIRS usable for applications 2014-06-23 15:50:10 +02:00
René Kijewski
35e74ad725 make: refactor make system (parallelism, deduplication)
Almost everything was build sequentially in RIOT, because we employed
explicit for-loops to build directories (DIRS). This PR makes our make
system use normal dependencies to build directories.

All our compiling rules were duplicated, once for the application, once
for modules. This PR makes the application a normal module, removing
this duplication.
2014-06-23 15:49:55 +02:00
René Kijewski
35d024fff0 Merge pull request #1340 from Kijewski/evaluate-git-sha-once
make: evaluate the Git SHA only once
2014-06-21 19:19:24 +02:00
René Kijewski
1d34522703 make: evaluate the Git SHA only once 2014-06-21 18:29:16 +02:00
Ludwig Ortmann
de4677eb60 make: s/PROJDEPS/APPDEPS/
fixes https://github.com/RIOT-OS/RIOT/issues/1284
2014-06-21 18:28:34 +02:00
Oleg Hahm
bd94bd22f6 Merge pull request #1209 from Kijewski/buildinfo
make: add comprehensive `buildinfo` list
2014-06-02 14:04:01 +02:00
Thomas Eichinger
1e983c9670 s/PROJECT/APPLICATION/g
fixes #548
2014-05-26 13:21:09 +02:00
René Kijewski
054f9fd026 make: fix clean together with TLSF 2014-05-24 19:22:18 +02:00
René Kijewski
4198b7518c make: add BOARD_INSUFFICIENT_RAM blacklisting
Currently most blacklistings for examples and tests are done because the
board provides too little RAM or ROM. Besides of the actual linking all
the compiling should nevertheless work just fine.

This PR adds the variable `BOARD_INSUFFICIENT_RAM` to tell the
`buildtest` to compile the code for a board, but omit the linking step.
2014-05-23 14:29:38 +02:00
René Kijewski
27ae094413 make: remove clutter
Remove some outdated example code.
2014-05-23 14:28:27 +02:00
René Kijewski
9f40d019e3 Merge pull request #1201 from Kijewski/exclusive-make-clean
make: make clean usable together with `-j`
2014-05-23 03:48:55 +02:00
René Kijewski
5cb1d03ef4 make: add comprehensive buildinfo list
Sometimes it is difficult to track down build errors for boards that you
are unfamiliar with.

This change adds `make buildinfo` that prints out all the relevant build
information for the selected board and project:

```
PROJECT: default
BOARD:   msba2
CPU:     lpc2387
MCU:     lpc2387

RIOTBASE:  /home/kijewski/RIOT/RIOT
RIOTBOARD: /home/kijewski/RIOT/RIOT/boards
RIOTCPU:   /home/kijewski/RIOT/RIOT/cpu

DEFAULT_MODULE: auto_init core cpu sys
DISABLE_MODULE:
USEMODULE:      arm_common cc110x_ng cc110x_spi config defaulttransceiver gpioint lib lpc_common ltc4150 mci net_help posix protocol_multiplex ps random rtc shell shell_commands sht11 timex transceiver uart0 vtimer

ELFFILE: /home/kijewski/RIOT/RIOT/examples/default/bin/msba2/default.elf
HEXFILE: /home/kijewski/RIOT/RIOT/examples/default/bin/msba2/default.hex

CC: arm-none-eabi-gcc
CFLAGSS:
        -DBOARD_MSBA2
        -DCPU_LPC2387
        -DMODULE_ARM_COMMON
        -DMODULE_AUTO_INIT
        -DMODULE_CC110X_NG
        -DMODULE_CC110X_SPI
        -DMODULE_CONFIG
        -DMODULE_CORE
        -DMODULE_CPU
        -DMODULE_DEFAULTTRANSCEIVER
        -DMODULE_GPIOINT
        -DMODULE_LIB
        -DMODULE_LPC_COMMON
        -DMODULE_LTC4150
        -DMODULE_MCI
        -DMODULE_NET_HELP
        -DMODULE_POSIX
        -DMODULE_PROTOCOL_MULTIPLEX
        -DMODULE_PS
        -DMODULE_RANDOM
        -DMODULE_RTC
        -DMODULE_SHELL
        -DMODULE_SHELL_COMMANDS
        -DMODULE_SHT11
        -DMODULE_SYS
        -DMODULE_TIMEX
        -DMODULE_TRANSCEIVER
        -DMODULE_UART0
        -DMODULE_VTIMER
        -O2
        -Wall
        -Wstrict-prototypes
        -mcpu=arm7tdmi-s
        -gdwarf-2
        -std=gnu99
        -fno-delete-null-pointer-checks
        -Wstrict-prototypes
        -Werror=strict-prototypes
        -Wold-style-definition
        -Werror=old-style-definition

LINK: arm-none-eabi-gcc
LINKFLAGS:
        -gdwarf-2
        -mcpu=arm7tdmi-s
        -static
        -lgcc
        -nostartfiles
        -T/home/kijewski/RIOT/RIOT/cpu/lpc2387/linkerscript.x

OBJCOPY: arm-none-eabi-objcopy
OFLAGS:  -O ihex

FLASHER: lpc2k_pgm
FFLAGS:  /dev/ttyUSB0 /home/kijewski/RIOT/RIOT/examples/default/bin/msba2/default.hex

TERMPROG: /home/kijewski/RIOT/RIOT/dist/tools/pyterm/pyterm.py
PORT:     /dev/ttyUSB0

DEBUGGER:
DEBUGGER_FLAGS:

MAKEFILE_LIST:
        /home/kijewski/RIOT/RIOT/examples/default/Makefile
        /home/kijewski/RIOT/RIOT/Makefile.include
        /home/kijewski/RIOT/RIOT/Makefile.modules
        /home/kijewski/RIOT/RIOT/Makefile.pseudomodules
        /home/kijewski/RIOT/RIOT/Makefile.defaultmodules
        /home/kijewski/RIOT/RIOT/boards/msba2/Makefile.include
        /home/kijewski/RIOT/RIOT/boards/msba2-common/Makefile.include
        /home/kijewski/RIOT/RIOT/boards/msba2-common/Makefile.dep
        /home/kijewski/RIOT/RIOT/cpu/lpc2387/Makefile.include
        /home/kijewski/RIOT/RIOT/cpu/arm_common/Makefile.include
        /home/kijewski/RIOT/RIOT/cpu/lpc_common/Makefile.include
        /home/kijewski/RIOT/RIOT/Makefile.dep
        /home/kijewski/RIOT/RIOT/Makefile.cflags
        /home/kijewski/RIOT/RIOT/sys/Makefile.include
        /home/kijewski/RIOT/RIOT/drivers/Makefile.include
        /home/kijewski/RIOT/RIOT/Makefile.buildtests
```
2014-05-18 18:59:51 +02:00
René Kijewski
3d6c7008e5 make: make clean usable together with -j 2014-05-16 19:11:55 +02:00
René Kijewski
66a3d7da77 make: fix #1197
Partial revert of 85b7eca19e

Fixes #1197.
2014-05-16 18:18:35 +02:00
René Kijewski
e189064171 make: print error if make was executed in the root
Fixes #1104, alternative to #1178.
2014-05-15 20:07:32 +02:00
Martine Lenders
47373a9e4a Merge pull request #1098 from authmillenon/make-addon
make: Make make more flexible
2014-05-15 01:19:11 +02:00
René Kijewski
fe8710ce05 make: put buildtest goals into an own file
`Makefile.include` is too long as is.
2014-05-14 19:12:09 +02:00
Martin Lenders
8fd09c575c Make directory creation in object compilation more makey 2014-05-14 18:16:40 +02:00
Martin Lenders
85b7eca19e Move .elf file to it's own target 2014-05-14 18:16:40 +02:00
Martin Lenders
c710062f86 Introduce macro to define files that should be deleted on make clean 2014-05-14 18:16:39 +02:00
René Kijewski
073bdfe9ec make: add own file for CFLAGS feature tests 2014-05-12 21:57:09 +02:00
René Kijewski
f02e5b97e2 make: show diffence in buildsizes for two folders 2014-04-23 17:19:19 +02:00
René Kijewski
bb3b3bffa7 make: add maketarget to to show the biggest obj files 2014-04-23 17:18:50 +02:00
René Kijewski
f2e73863cb make: comprehensive list of the boards' filesizes 2014-04-23 17:18:19 +02:00
René Kijewski
542a2e5d9d Merge pull request #995 from Kijewski/issue-993
Make: exterminate 'clean' buildtarget clutter
2014-04-18 16:11:15 +02:00
René Kijewski
300d6b3e35 Make: exterminate 'clean' buildtarget
Closes #993.

We do not need to descend into the modules to know what to do on
`make clean BOARD=blub`. We can just invoke `rm -rf bin/blub`.

This PR only keeps the descending into the USEPKGs, since they might
want to delete cached/downloaded/extracted data.
2014-04-09 23:07:52 +02:00
René Kijewski
49c3fd666c Make: fix linebreaks in buildtest 2014-04-09 12:40:58 +02:00
Oleg Hahm
4fd851bccf Merge pull request #855 from authmillenon/board_macro
make: Fix BOARD and CPU macros
2014-04-09 01:24:58 +02:00
René Kijewski
e740fbc800 make: Add DEFAULT_MODULE and DISABLE_MODULE
Closes #926
2014-04-01 23:42:00 +02:00
René Kijewski
de29e4184c Add include paths automatocally for USEMODULES
Application developers use `$(USEMODULES)` in their Makefiles to have
the relevant functionally automagically added to their apps. This even
does basic dependency tracking by means of `Makefile.dep`.

But an important thing is missing: the automatic adding of include
paths. This is inconvenient, error prone, and will hinder the RIOT core
developers in future to change folder structures.
2014-03-29 16:27:55 +01:00
Ludwig Ortmann
f1dafdb062 include warnings
addresses https://github.com/RIOT-OS/RIOT/pull/883#issuecomment-37833467
2014-03-17 17:39:30 +01:00
Ludwig Ortmann
91cc4a2771 make/buildtest: print errors
Display all stderr output but suppress warnings.

implements https://github.com/RIOT-OS/RIOT/issues/835
2014-03-14 09:15:25 +01:00
Ludwig Ortmann
9b61d95545 make: don't ignore failures in for loops
Add `|| exit 1` to all constructs like `@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;`, so that compilation stops on the first error.
2014-03-12 11:09:04 +01:00
Martin Lenders
c26f2c9d70 Fix BOARD macro 2014-03-04 15:52:44 +01:00
Martin Lenders
e7c3282886 Replace '-' with '_' in BOARD and CPU_… macros 2014-03-04 14:58:34 +01:00
René Kijewski
f58369ff91 Don't build PKGs twice 2014-02-27 01:29:38 +01:00
Oleg Hahm
c1bcfb3516 Merge pull request #722 from Kijewski/fixup-664
First apply board includes, then det. CC caps
2014-02-18 13:45:50 +01:00
Christian Mehlis
cb9c5d00de repace project by application in documentation 2014-02-18 12:28:32 +01:00
René Kijewski
d7834ecbf8 First apply board includes, then det. CC caps
In #664 I added a test that determines if the supplied compiler
understands the `-fno-delete-null-pointer-checks` flag. The problem is
that the `$(CC)` supplied on command line or in the application's
Makefile is used, but not the one the `$(BOARD)`'s Makefile sets.

That problem was overlooked as all the boards use GCC, and GCC happens
to know the flag. But if some future board does not use GCC, then the
wrong order of the checks could pose a problem.
2014-02-17 07:04:36 +01:00
Ludwig Ortmann
d3901529c6 use filter instead of findstring in BOARD_BLACKLIST checking 2014-02-15 07:56:46 +01:00
Martin Lenders
b41e36de3a Merge pull request #535 from authmillenon/board-blacklists-whitelists
Introduce board blacklists and board whitelists
2014-02-14 18:29:15 +01:00
René Kijewski
4b012dfa54 Merge pull request #576 from Kijewski/usepkg
Add USEPKG variable for Makefiles
2014-02-14 14:40:24 +01:00
René Kijewski
7f4fb027db Merge pull request #692 from Kijewski/std-flag
Do not mandate input language
2014-02-14 14:39:47 +01:00
Martin Lenders
e6d5af4b8f Introduce board blacklists and board whitelists 2014-02-14 09:49:17 +01:00
René Kijewski
caea069bcf Do not mandate input language
An application might want to use C11 features. The user would assume
that setting `CFLAGS=-std=gnu11` in the Makefile would work. It does not
since the board's Makefile.include shadows the `-std` flag.

This patch removes the `-std=gnu99` from the various Makefile.includes,
and sets the flag in the common Makefile.include of RIOT instead.
If an `-std` flag was provided by an earlier Makefile (the application,
the board, or the CPU [whilst only the former one should]), then no
additional flag is set. It is first tested if the supplied compiler
understands `-std=gnu99`, then `-std=c99`.
2014-02-14 00:06:02 +01:00
Martin Lenders
378b85bfd0 Always use absolute paths with configurable paths variables 2014-02-12 15:23:15 +01:00
René Kijewski
84cffaa0a0 Use include path convention for PKGs
Packages have to define a Makefile.include target in pkg/%/Makefile.
pkg/%/Makefile.include will be loaded after all other dependencies.
2014-02-12 13:59:39 +01:00
René Kijewski
5906f18a81 Add USEPKG variable for Makefiles
Currently pkg/USING says one should use
`EXTERNAL+=$(RIOTBASE)/pkg/<pkg_name>` to enable PKG modules.
Using this line the PKG will be compiled but not linked.

This change adds a USEPKG variable to be used like
`USEPKG += <pkg_name>`, which looks less clumsy and gets the PKG linked
in the binary.
2014-02-12 13:57:30 +01:00
Christian Mehlis
07c5ae3ca9 Merge pull request #664 from Kijewski/conditional-fno-delete-null-pointer-checks
clang does not know fno-delete-null-pointer-checks
2014-02-12 10:48:27 +01:00
Ludwig Ortmann
2525920426 remove trailing whitespace and newlines 2014-02-11 18:45:06 +01:00
Oleg Hahm
3c169de879 Merge pull request #661 from LudwigOrtmann/Makefile_dep
move Makefile.dep include
2014-02-11 17:44:59 +01:00
René Kijewski
012fb5f95d Fix -fno-delete-null-pointer-checks (#664)
Only use -fno-delete-null-pointer-checks if the supplied compiler knows
the flag. Clang does not understand the flag, and does not need it.
2014-02-10 21:10:31 +01:00
Ludwig Ortmann
d40b6ac5b1 native+osx makefile cleanup
* add missing $(AD) to osx $(LINK) invocation
* move osx build determination to native makefile
* move old libc test to native makefile
* set objcopy to "true" - it is superfluous for native no matter what the system is
* add some documentation to natives makefile
2014-02-10 12:25:47 +01:00
Ludwig Ortmann
73a2c4edf2 move Makefile.dep include
boards modify USEMODULE which can lead to additional dependencies.
including Makefile.dep last enables it to resolve all dependencies.
2014-02-07 21:24:42 +01:00
Oleg Hahm
48b5dacde8 Merge pull request #620 from LudwigOrtmann/buildtest_fail
upgrade buildtest for CI
2014-02-05 22:47:44 +01:00
René Kijewski
c728041f54 Do not assume 0x0 to be an unusable address 2014-02-05 15:16:33 +01:00
Ludwig Ortmann
9ab441e091 make buildtest fail on error 2014-02-05 09:02:29 +01:00
Ludwig Ortmann
351dea1dbd decolorize buildtest output for jenkins/monochrome 2014-02-05 09:01:43 +01:00
Ludwig Ortmann
3864d33ede make buildtest more readable 2014-02-05 09:01:32 +01:00
Oleg Hahm
683a078515 Merge pull request #494 from OlegHahm/uniq_obj_file_names
prefixing application object files to avoid dups
2014-01-17 04:44:57 -08:00
Oleg Hahm
74a3158cb2 use subfolder instead of file name prefix 2014-01-14 17:58:29 +01:00
Oleg Hahm
e57d94cf44 prefixing application object files to avoid dups 2014-01-10 17:17:26 +01:00
Ludwig Ortmann
5c0000be5b unsilence link,size,objcopy 2014-01-10 15:43:17 +01:00
Oleg Hahm
fc359cd9f4 strip BOARD variable 2014-01-08 16:46:16 +01:00
Oleg Hahm
cb7de2432e moved muting "logic" away from application Makefile 2014-01-05 16:11:08 +01:00
Oleg Hahm
9df07f9238 muting compiler and binutils optionally
Instead of muting all compiler and other binutils output by default,
introduce a variable to make this behaviour configurable.
2014-01-05 16:11:08 +01:00
Oleg Hahm
79cff89bb0 create BOARDS subdirectory for binaries 2014-01-05 16:11:08 +01:00
Oleg Hahm
02612ff0ca further Makefile cleanup 2014-01-05 16:11:08 +01:00
Oleg Hahm
f8e349f76e removed superfluous slash after BINDIR 2014-01-05 16:11:08 +01:00
Oleg Hahm
26c50522d5 simplified and unified cpu build structure 2014-01-05 16:11:07 +01:00
Oleg Hahm
55f31a4829 simplify include structure for boards
* do not overwrite CFLAGS in boards Makefile
2014-01-05 16:11:07 +01:00
Oleg Hahm
1e665b49de build everything in the project directory 2014-01-05 16:11:07 +01:00
Oleg Hahm
8c4b48a93f make buildtest output coloured 2013-12-24 17:13:46 +01:00
Oleg Hahm
714178afd2 introduce CPU name macro via CFLAG 2013-12-19 15:24:31 +01:00
Ludwig Ortmann
7f7ce44fd8 dont rely on boards/Makefile.base 2013-11-15 12:14:23 +01:00
Ludwig Ortmann
7351a74f5f include HOME in env 2013-11-14 11:44:15 +01:00
Ludwig Ortmann
5618795027 allow for differing RIOT* paths 2013-11-14 11:44:15 +01:00
Ludwig Ortmann
50a2dbeaa1 implement buildtest target
the target runs make for every board in boards
2013-11-14 11:44:15 +01:00
Oleg Hahm
31a0cb90d1 define RIOTBOARD if unset 2013-11-06 10:39:25 -08:00
Oleg Hahm
438e5ed429 Merge pull request #239 from OlegHahm/objcopy_flags
Objcopy flags
2013-10-17 09:03:12 -07:00
Oleg Hahm
3d73e84ad6 get flags for objcopy from platform dependent includes 2013-10-11 15:13:03 +02:00
Oleg Hahm
46deefe0f8 make Makefiles proof for spaces in $PATH 2013-10-09 15:28:53 +02:00
authmillenon
7fea5f15cc Add capability to Makefiles to use PROJBINDIR
Fixes bug in build-system that does not allow you to use other
PROJBINDIR than $(CURDIR)/bin
2013-09-18 15:12:58 +02:00
Ludwig Ortmann
3065c5c118 add PROJDEPS to PROJBINDIR target
This enables issues like https://github.com/RIOT-OS/projects/issues/26
to be fixed.
2013-08-31 12:40:16 +02:00
Oleg Hahm
b64fb65935 Merge branch 'agilefox_clean' of https://github.com/AlaeddineWeslati/RIOT into AlaeddineWeslati-agilefox_clean
Conflicts:
	sys/include/transceiver.h
	sys/transceiver/transceiver.c

Additional changes:
* allow for multi-transceiver initialization
* change packet reception to old implementation
2013-08-15 19:07:14 +02:00
Alaeddine WESLATI
11bb09b7f8 started adding at86rf231 driver
at86rf231 TX and RX

driver is using vtimer instead of hwtimer_ functions, TO CHECK

vtimer debug function prototype fix
2013-08-12 15:17:22 +02:00
Oleg Hahm
6239ea2a0b minor changes according to 7a2cc4ae09 2013-08-09 15:57:34 +02:00
authmillenon
4f363ce0fe Define phony make targets 2013-08-08 15:44:44 +02:00
Martin Lenders
acc83c676a Fix mkdir from 065566c 2013-07-31 17:16:05 +02:00