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

93 Commits

Author SHA1 Message Date
Oleg Hahm
559b072a59 make: don't overwrite LINKFLAGS
Fix the boards' Makefiles were a potentially set LINKFLAGS variable were
overwritten.
2014-10-17 22:39:45 +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
René Kijewski
0cc699c0ce lint: reduce scope
Fix some lint warnings of kind
```
style (variableScope): The scope of the variable '…' can be reduced
```
2014-09-12 11:50:12 +02:00
Ludwig Ortmann
b7992922ce fix license headers in non-.c files 2014-08-23 16:16:26 +02:00
Ludwig Ortmann
d55da67fb6 Merge pull request #1329 from LudwigOrtmann/riot_license
RIOT default license header change
2014-07-31 23:12:47 +02:00
Ludwig Ortmann
5fdce06b3b doc: use lgplv2.1-short license header instead of lgplv2-short-v1 2014-07-31 22:57:20 +02:00
Cenk Gündoğan
7ca2e874e1 converting tabs to spaces in boards (#1439)
This PR converts tabs to white spaces.
The statement I used for the conversion:
'''find . -name "*.[ch]" -exec zsh -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;'''
Afterwards, I had a quick overview of the converted files to prevent odd indentation.
2014-07-31 20:34:28 +02:00
Ludwig Ortmann
fb205550a1 boards/chronos: clean up display driver a bit
reduce scope of variables
remove useless comments and spaces

saves 2 bytes =)
2014-07-27 12:51:22 +02:00
René Kijewski
467b41ad49 make: easifier usage of module subdirectories
Many modules have subdirectories. Often these subdirectories should only
be included under certain circumstances. Modules that use submodules
currently need to use this pattern:

```make
DIRS = …

all: $(BINDIR)$(MODULE).a
   @for i in $(DIRS) ; do $(MAKE) -C $$i ; done ;

include $(RIOTBASE)/Makefile.base

clean::
   @for i in $(DIRS) ; do $(MAKE) -C $$i clean ; done ;
```

This PR moves the `all:` and `clean::` boilerplate into `Makefile.base`.
2014-06-17 15:49:32 +02:00
René Kijewski
1608fd1570 make: remove local definitions of (ELF|HEX)FILE
We have sane defaults for `ELFFILE` and `HEXFILE` in the root
`Makefile.include`. The local definition for `ELFFILE` of mbed_lpc1768's
`Makefile.include` was wrong, which caused e.g. `make buildsize` to
fail.
2014-06-12 10:12:49 +02:00
Thomas Eichinger
1e983c9670 s/PROJECT/APPLICATION/g
fixes #548
2014-05-26 13:21:09 +02:00
René Kijewski
a8064fd97c Automatically remove dups in $(USEMODULE) 2014-04-29 00:06:19 +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
3f59eefbaf Use subfolders in bin dir
Creating all object files in one directory is bound to produce name
clashes. RIOT developers may take care to use unique file names, but
external packages surely don't.

With this change all the objects of a module (e.g. `shell`) will be
created in `bin/$(BOARD)/$(MODULE)`.

I compared the final linker command before and after the change. The
`.o` files (e.g. `startup.o`, `syscall.o` ...) are included in the same
order. Neglecting the changed path name where the `.o` files reside, the
linker command stays exactly the same.

A major problem could be third party boards, because the location of the
`startup.o` needs to the specified now in
`boards/$(BOARD)/Makefile.include`, e.g.
```Makefile
export UNDEF += $(BINDIR)msp430_common/startup.o
```
2014-04-09 00:28:14 +02:00
Ludwig Ortmann
8ac4f3332d core cpu: add defaulttransceiver pseudomodule
update examples/default
2014-03-18 10:18:15 +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
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
Ludwig Ortmann
2525920426 remove trailing whitespace and newlines 2014-02-11 18:45:06 +01:00
Oleg Hahm
02341bc79a removed no longer needed include path 2014-02-07 17:06:50 +01:00
Oleg Hahm
70747d8bb4 streamlined driver include pathes 2014-02-05 18:56:47 +01:00
Oleg Hahm
d9c31a01e5 addressed comments from @mehlis 2014-02-03 00:47:38 +01:00
Oleg Hahm
4bc6dfbf69 added license headers and doxygen file information
plus replaced tabs with spaces
2014-02-02 22:22:03 +01:00
Oleg Hahm
9eebc532ef Merge pull request #459 from rousselk/msp430-lpm-freq
Msp430 lpm freq
2014-01-16 04:57:27 -08: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
c48b34f540 use proper variables in board Makefiles 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
c7d985d371 removed redundant include pathes from Makefiles 2014-01-05 16:11:08 +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
Kévin Roussel
5d393d270b Sets MCU frequency in 'board.h', instead of the common 'cpu.h' file 2013-12-24 15:41:32 +01:00
Ludwig Ortmann
680f778fc4 chronos cleanup 2013-12-19 18:44:11 +01:00
Ludwig Ortmann
b674183e15 move display and lcd init from autoinit to chronos 2013-12-19 17:57:18 +01:00
Oleg Hahm
903ec54a43 making include directives consistent 2013-12-19 15:31:37 +01:00
Kévin Roussel
afce119138 Added definition of correct MCU model in MSP430-based board headers 2013-12-18 10:51:45 +01:00
Hauke Petersen
c629229e8d Added the boards folder to the doxygen tree
- added boards to riot.doxyfile
- fixed group definitions for all boards
2013-12-16 14:00:37 +01:00
Ludwig Ortmann
0f20a3c87f Merge pull request #416 from LudwigOrtmann/chronos_flashing
chronos: fix FFLAGS
2013-12-11 10:10:42 -08:00
Ludwig Ortmann
aec8024776 fix FFLAGS 2013-12-11 19:10:07 +01:00
Ludwig Ortmann
7bbffd7200 remove chronos bindir in clean target 2013-12-11 16:34:54 +01:00
Ludwig Ortmann
138c1c0e71 fix chronos bindir creation 2013-12-11 16:34:54 +01:00
Ludwig Ortmann
3b2b02e99a enable building chronos board 2013-11-19 17:56:05 +01:00
Ludwig Ortmann
f7a1edeb2c fix and clean up some board Makefiles
enables building wsn430-v1_3b and wsn430-v1_4
fixes some but not all chronos building issues
2013-11-19 17:56:05 +01:00
Oleg Hahm
232e205137 moved boards into subdirectory 2013-11-06 10:11:57 -08:00