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

43 Commits

Author SHA1 Message Date
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
68f3c261b0 docker: Add support for buildtests inside Docker. 2015-05-06 14:04:15 +02:00
Martine Lenders
1b7b35ac81 make: add output for all involved files to an application 2015-04-16 15:53:47 +02:00
Philipp Rosenkranz
6087aaf223 make: allow buildtest targets to function without BUILDTEST_MCU_GROUP 2015-03-12 21:33:43 +01:00
Philipp Rosenkranz
02d0c88284 tests/travis: split buildtests into MCU groups. 2015-02-22 15:04:52 +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
Lucas Jenss
de11d59177 Add TERMFLAGS to info-build of Makefile.buildtests
As requested in #1559
2014-11-25 09:13:45 -08:00
René Kijewski
e4ae8eaa6e make: allow tagged RIOT_VERSION 2014-11-21 17:06:46 +01:00
Ludwig Ortmann
75a7a1f1db Merge pull request #1894 from thomaseichinger/buildtest_fix
make: fix make targets buildtest and info-boards-supported
2014-10-28 08:31:09 -07:00
Thomas Eichinger
6394cae938 make: fix make targets buildtest and info-boards-supported
Fixes issues with the make targets buildtest and info-boards-supported
on OS X hosts. Comments and recommentations to simplify and beautify
would be appreciated.
2014-10-28 15:05:49 +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
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
René Kijewski
4d8aad8ad1 make: Centralize color use 2014-10-06 17:36:03 +02:00
René Kijewski
b22c2f4ab5 Merge pull request #1431 from Kijewski/wget-for-everyone-woooohooooo
make: centralize wget/curl & unzip/7z feature test
2014-08-21 21:23:30 +02:00
René Kijewski
94b2e0815a tests: limit concurrency level
Some Travis CI machines have 32 CPUs. This sets our concurrency level to 33.
Travis CI kills our buildtest for obvious reasons.

This PR limits the concurrency level to 8 on Travis CI.
2014-08-21 20:05: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
7306552873 [SQUASH ME] make: remove debugging lines 2014-08-13 21:14:11 +02:00
Martine Lenders
87b68e9382 make: Add supported boards to info-build target 2014-08-13 20:44:16 +02:00
Martine Lenders
e8f251cfa3 [SQUASH ME] make: info-boards-supported is just 2014-08-13 20:43:42 +02:00
Martine Lenders
da779b0dee make: Make BOARDS a global macro for buildtests 2014-08-13 20:39:48 +02:00
Martine Lenders
c5bfbcfd25 [SQUASH ME] Fix some error + simplify some calls 2014-08-11 22:23:56 +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
e97c5ea7be make: Add info prefix for non-building targets in Makefile.buildtests 2014-08-11 11:29:13 +02:00
Martine Lenders
30fc8671cd [SQUASH ME] make: move info-boards-supported to Makefile.buildtests 2014-08-11 11:28:17 +02:00
René Kijewski
4d5563acea Merge pull request #1546 from Kijewski/buildtest-retry
buildtest: retry failed builds once
2014-08-06 23:13:24 +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
René Kijewski
9879e4aaa7 buildtest: retry failed builds once
On Travis CI often builds fail spuriously.

This PR lets `make buildtest` retry the build once.
2014-08-05 17:42:32 +02:00
René Kijewski
be6de6fda4 Merge pull request #1476 from LudwigOrtmann/buildsizes
make: fix buildsizes* targets
2014-07-30 19:32:02 +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
Ludwig Ortmann
0057587e12 make: fix buildsizes* targets
also ignore BOARD_INSUFFICIENT_RAM boards
unify/make work BOARD filter
2014-07-27 16:50:09 +02:00
René Kijewski
747138cf99 make: move exported make vars to one place 2014-07-10 15:20:37 +02:00
Ludwig Ortmann
2075eeef01 make: %s/PROJECT/APPLICATION/g Part III 2014-06-18 15:24:14 +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
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
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
72ffa980ab make: supply -j on buildtest
We support `make -j` for a while now. `make buildtest` takes ages to
finish. So just supply `-j` on buildtest.
2014-05-14 19:12:10 +02:00
René Kijewski
97fca16cbe make: delete everything in buildtest beforehand 2014-05-14 19:12:09 +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