Commit Graph

165 Commits (9cf5e5fb6a7cf12a5b8f6ce4f71ab2b454787f4e)

Author SHA1 Message Date
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)
8 years ago
Oleg Hahm 802b3d9c00 make: remove scan-build folder in clean 8 years ago
Joakim Gebart 13753cca14 Makefile.scan-build: Add make goal for running Clang static code analysis 8 years ago
Thomas Eichinger 85ab42dd30 Merge pull request #3262 from gebart/pr/map-cross-reference
Makefile.include: Add --cref to linker options
8 years ago
Martine Lenders 0c424716a6 make: auto-include testbed support for IoT-LAB 8 years ago
Joakim Gebart ee8a8be09e Makefile.include: Add clean-intermediates target 8 years ago
Philipp Rosenkranz 538c992919 make: delete emptyarchive after test 8 years ago
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.
8 years ago
Joakim Gebart b54c9d21ee dist: Add tool for generating Eclipse setting XML files
Usage: make eclipsesym (in application directory)
8 years ago
Kaspar Schleiser 5a598b64b4 make: introduce RIOT_VERSION_OVERRIDE
Allows overriding of -DRIOT_VERSION regardless of the version actually
used. Necessary for reproducable compiles.
8 years ago
Martine Lenders bac1ac3b59 make: actually disable a DISABLED_MODULE 9 years ago
Joakim Gebart 2682c38ee8 Merge pull request #2923 from gebart/pr/docker-buildtests
Docker: allow buildtests inside Docker, refactor environment handling.
9 years ago
BytesGalore f9a79eee41 RIOT/Makefile.include: added compile time warning on conflicting features 9 years ago
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.
9 years ago
haukepetersen 56cce19578 make: added APPDIR as environment variable 9 years ago
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.
9 years ago
Oleg Hahm 18bf9529f2 make: check for board existence 9 years ago
Oleg Hahm 20067567d1 make: check for existence of tools 9 years ago
Oleg Hahm 984effd5b8 make: added a check for compiler existence 9 years ago
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.)
9 years ago
Oleg Hahm dbca0d0dd4 make: add target to list available targets 9 years ago
Ludwig Ortmann 66a6aae1a8 make: escape unknown version string 9 years ago
Oleg Hahm aef6256cc5 make: include DEFAULT_MODULES from cpu and boards 9 years ago
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
9 years ago
Thomas Eichinger d7d45482af make: migrate OS variable for COLOR_ECHO too 9 years ago
René Kijewski 0d6bc7eba6 Merge pull request #1913 from Kijewski/issue-1910
make: allow tagged RIOT_VERSION
9 years ago
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.
9 years ago
René Kijewski bfbb1a353d Merge pull request #1924 from OlegHahm/strip_application_name
make: strip white space from application name
9 years ago
Oleg Hahm 6bdf6a1577 make: strip APPLICATION variable
Trailing white spaces in the application Makefile will cause the build
system to fail otherwise.
9 years ago
René Kijewski e4ae8eaa6e make: allow tagged RIOT_VERSION 9 years ago
Ludwig Ortmann 6c9907b357 make: reintroduce dependency from flash to all 9 years ago
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.
9 years ago
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
9 years ago
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`.
9 years ago
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.
9 years ago
Ludwig Ortmann c947dc9858 make: remove $(CLEANFILES), it's superfluous 9 years ago
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
9 years ago
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.
9 years ago
Martine Lenders 50a185524f make: Allow for include of modules outside of the RIOTBASE path 9 years ago
Ludwig Ortmann 71b961bef7 make: .PHONY missing targets from Makefile.include 9 years ago
Ludwig Ortmann 9053cfe2de make: add objdump target 9 years ago
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.
9 years ago
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.
9 years ago
Martine Lenders 04489be771 [SQUASH ME] make: Move buildtest related PHONY targets to Makefile.buildtests 9 years ago
Martine Lenders 86d8dede48 [SQUASH ME] make: Add info prefix for non-building targets in Makefile.buildtests 9 years ago
Martine Lenders 30fc8671cd [SQUASH ME] make: move info-boards-supported to Makefile.buildtests 9 years ago
Martine Lenders 0c68712fa8 make: Add target to show if boards that are supported by apps 9 years ago
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
9 years ago
Oleg Hahm 6340123558 make: introduced TERMFLAGS
Also added the missing -p flag for the new pyterm version where
necessary.
9 years ago
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.
9 years ago