Commit Graph

222 Commits (aedffd78835f3afade2b34d55347048c01404c3f)

Author SHA1 Message Date
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
René Kijewski f183730917 make: force traversal into PKG's, same as normal modules 9 years ago
Ludwig Ortmann e677aa4ec0 make: add RIOTBASE to UNKNOWN RIOT_VERSION 9 years ago
Ludwig Ortmann 9d9d2aff93 make: make RIOT_VERSION fail-safe 9 years ago
Ludwig Ortmann e5613d308a make: allow setting RIOT_VERSION externally
also make the RIOT_VERSION variable available in buildtest
9 years ago
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.
9 years ago
René Kijewski 747138cf99 make: move exported make vars to one place 9 years ago
Leon George 215c9aae2b make: allow chosing ld-like over gcc-like options
make automatically adds '-Wl,' to linker-options. Supply `LINKFLAGPREFIX :=` to avoid that.
9 years ago
Pham Huu Dang Nhat f7398f61ff Changed RIOT/Makefile.include, Makefile.base, Makefile.cflags, and native/Makefile.include to compile C and C++ files. 9 years ago
René Kijewski 2f66319a3a make: OSX: don't fail for empty .a archives
Fixes issue #1333.
9 years ago
René Kijewski d19fc447ed make: make DIRS usable for applications 9 years ago
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.
9 years ago
René Kijewski 35d024fff0 Merge pull request #1340 from Kijewski/evaluate-git-sha-once
make: evaluate the Git SHA only once
9 years ago
René Kijewski 1d34522703 make: evaluate the Git SHA only once 9 years ago
Ludwig Ortmann de4677eb60 make: s/PROJDEPS/APPDEPS/
fixes https://github.com/RIOT-OS/RIOT/issues/1284
9 years ago
Oleg Hahm bd94bd22f6 Merge pull request #1209 from Kijewski/buildinfo
make: add comprehensive `buildinfo` list
9 years ago
Thomas Eichinger 1e983c9670 s/PROJECT/APPLICATION/g
fixes #548
9 years ago
René Kijewski 054f9fd026 make: fix clean together with TLSF 9 years ago
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.
9 years ago
René Kijewski 27ae094413 make: remove clutter
Remove some outdated example code.
9 years ago
René Kijewski 9f40d019e3 Merge pull request #1201 from Kijewski/exclusive-make-clean
make: make clean usable together with `-j`
9 years ago
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
```
9 years ago
René Kijewski 3d6c7008e5 make: make clean usable together with `-j` 9 years ago
René Kijewski 66a3d7da77 make: fix #1197
Partial revert of 85b7eca19e

Fixes #1197.
9 years ago
René Kijewski e189064171 make: print error if make was executed in the root
Fixes #1104, alternative to #1178.
9 years ago
Martine Lenders 47373a9e4a Merge pull request #1098 from authmillenon/make-addon
make: Make make more flexible
9 years ago
René Kijewski fe8710ce05 make: put buildtest goals into an own file
`Makefile.include` is too long as is.
9 years ago
Martin Lenders 8fd09c575c Make directory creation in object compilation more makey 9 years ago
Martin Lenders 85b7eca19e Move .elf file to it's own target 9 years ago
Martin Lenders c710062f86 Introduce macro to define files that should be deleted on make clean 9 years ago
René Kijewski 073bdfe9ec make: add own file for CFLAGS feature tests 9 years ago
René Kijewski f02e5b97e2 make: show diffence in buildsizes for two folders 9 years ago
René Kijewski bb3b3bffa7 make: add maketarget to to show the biggest obj files 9 years ago
René Kijewski f2e73863cb make: comprehensive list of the boards' filesizes 9 years ago
René Kijewski 542a2e5d9d Merge pull request #995 from Kijewski/issue-993
Make: exterminate 'clean' buildtarget clutter
9 years ago
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.
9 years ago
René Kijewski 49c3fd666c Make: fix linebreaks in buildtest 9 years ago
Oleg Hahm 4fd851bccf Merge pull request #855 from authmillenon/board_macro
make: Fix BOARD and CPU macros
9 years ago
René Kijewski e740fbc800 make: Add DEFAULT_MODULE and DISABLE_MODULE
Closes #926
9 years ago
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.
9 years ago
Ludwig Ortmann f1dafdb062 include warnings
addresses https://github.com/RIOT-OS/RIOT/pull/883#issuecomment-37833467
9 years ago
Ludwig Ortmann 91cc4a2771 make/buildtest: print errors
Display all stderr output but suppress warnings.

implements https://github.com/RIOT-OS/RIOT/issues/835
9 years ago
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.
9 years ago
Martin Lenders c26f2c9d70 Fix BOARD macro 9 years ago
Martin Lenders e7c3282886 Replace '-' with '_' in BOARD and CPU_… macros 9 years ago
René Kijewski f58369ff91 Don't build PKGs twice 9 years ago
Oleg Hahm c1bcfb3516 Merge pull request #722 from Kijewski/fixup-664
First apply board includes, then det. CC caps
9 years ago
Christian Mehlis cb9c5d00de repace project by application in documentation 9 years ago
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.
9 years ago
Ludwig Ortmann d3901529c6 use filter instead of findstring in BOARD_BLACKLIST checking 9 years ago
Martin Lenders b41e36de3a Merge pull request #535 from authmillenon/board-blacklists-whitelists
Introduce board blacklists and board whitelists
9 years ago
René Kijewski 4b012dfa54 Merge pull request #576 from Kijewski/usepkg
Add USEPKG variable for Makefiles
9 years ago
René Kijewski 7f4fb027db Merge pull request #692 from Kijewski/std-flag
Do not mandate input language
9 years ago
Martin Lenders e6d5af4b8f Introduce board blacklists and board whitelists 9 years ago
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`.
9 years ago
Martin Lenders 378b85bfd0 Always use absolute paths with configurable paths variables 9 years ago
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.
9 years ago
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.
9 years ago
Christian Mehlis 07c5ae3ca9 Merge pull request #664 from Kijewski/conditional-fno-delete-null-pointer-checks
clang does not know fno-delete-null-pointer-checks
9 years ago
Ludwig Ortmann 2525920426 remove trailing whitespace and newlines 9 years ago
Oleg Hahm 3c169de879 Merge pull request #661 from LudwigOrtmann/Makefile_dep
move Makefile.dep include
9 years ago
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.
9 years ago
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
9 years ago
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.
9 years ago
Oleg Hahm 48b5dacde8 Merge pull request #620 from LudwigOrtmann/buildtest_fail
upgrade buildtest for CI
9 years ago
René Kijewski c728041f54 Do not assume 0x0 to be an unusable address 9 years ago
Ludwig Ortmann 9ab441e091 make buildtest fail on error 9 years ago
Ludwig Ortmann 351dea1dbd decolorize buildtest output for jenkins/monochrome 9 years ago
Ludwig Ortmann 3864d33ede make buildtest more readable 9 years ago
Oleg Hahm 683a078515 Merge pull request #494 from OlegHahm/uniq_obj_file_names
prefixing application object files to avoid dups
10 years ago
Oleg Hahm 74a3158cb2 use subfolder instead of file name prefix 10 years ago
Oleg Hahm e57d94cf44 prefixing application object files to avoid dups 10 years ago
Ludwig Ortmann 5c0000be5b unsilence link,size,objcopy 10 years ago
Oleg Hahm fc359cd9f4 strip BOARD variable 10 years ago
Oleg Hahm cb7de2432e moved muting "logic" away from application Makefile 10 years ago
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.
10 years ago
Oleg Hahm 79cff89bb0 create BOARDS subdirectory for binaries 10 years ago
Oleg Hahm 02612ff0ca further Makefile cleanup 10 years ago
Oleg Hahm f8e349f76e removed superfluous slash after BINDIR 10 years ago
Oleg Hahm 26c50522d5 simplified and unified cpu build structure 10 years ago
Oleg Hahm 55f31a4829 simplify include structure for boards
* do not overwrite CFLAGS in boards Makefile
10 years ago
Oleg Hahm 1e665b49de build everything in the project directory 10 years ago
Oleg Hahm 8c4b48a93f make buildtest output coloured 10 years ago
Oleg Hahm 714178afd2 introduce CPU name macro via CFLAG 10 years ago
Ludwig Ortmann 7f7ce44fd8 dont rely on boards/Makefile.base 10 years ago
Ludwig Ortmann 7351a74f5f include HOME in env 10 years ago
Ludwig Ortmann 5618795027 allow for differing RIOT* paths 10 years ago
Ludwig Ortmann 50a2dbeaa1 implement buildtest target
the target runs make for every board in boards
10 years ago
Oleg Hahm 31a0cb90d1 define RIOTBOARD if unset 10 years ago
Oleg Hahm 438e5ed429 Merge pull request #239 from OlegHahm/objcopy_flags
Objcopy flags
10 years ago
Oleg Hahm 3d73e84ad6 get flags for objcopy from platform dependent includes 10 years ago
Oleg Hahm 46deefe0f8 make Makefiles proof for spaces in $PATH 10 years ago
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
10 years ago
Ludwig Ortmann 3065c5c118 add PROJDEPS to PROJBINDIR target
This enables issues like https://github.com/RIOT-OS/projects/issues/26
to be fixed.
10 years ago
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
10 years ago
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
10 years ago
Oleg Hahm 6239ea2a0b minor changes according to 7a2cc4ae09 10 years ago
authmillenon 4f363ce0fe Define phony make targets 10 years ago
Martin Lenders acc83c676a Fix mkdir from 065566c 10 years ago
Martin Lenders 065566cd04 Create project's bin directory if it does not exist 10 years ago
Oleg Hahm 19e4034ace Merge branch 'thomas-mc1322x'
Conflicts:
	Makefile.modules
	core/kernel_init.c
	core/thread.c
	cpu/arm_common/arm_cpu.c
	cpu/arm_common/syscalls.c
	cpu/lpc_common/hwtimer_cpu.c
	cpu/lpc_common/iap.c
	sys/include/transceiver.h
	sys/net/sixlowpan/sixlowip.c
	sys/net/sixlowpan/sixlowmac.c
	sys/net/sixlowpan/sixlowmac.h
	sys/net/sixlowpan/sixlowpan.c
	sys/transceiver/Makefile
	sys/transceiver/transceiver.c
10 years ago
Benjamin Valentin 248267834d allow external modules to be added to a project 10 years ago
Christian Mehlis 57e70a659c Remove undefined variables from Makefiles
The following variables are included in various Makefiles but never
defined.

    $(BOARDINCLUDE)
    $(PROJECTINCLUDE)
    $(CPUINCLUDE)
10 years ago
Ludwig Ortmann a4528f3d8c Link with -lrt if glibc < 2.17 for native on linux 10 years ago
Ludwig Ortmann 35f9062e37 inital OSX support for native port 10 years ago
Thomas Eichinger 3dba62afa6 Merge branch 'mc1322x' of github.com:RIOT-OS/RIOT into mc1322x 10 years ago
Oliver Hahm d56081ddca * fixed Makefile.include to compile all *.c files 10 years ago
Oliver Hahm c39fd9d8dc * minor changes 10 years ago
Oliver Hahm 95158bd38e * fixed flasher flags in Makefile.include 10 years ago
Oliver Hahm f13ef5f500 * restructured cpu folder to distinguish between arm and lpc common files 10 years ago
Oliver Hahm fc3325b113 * set MCU to CPU if undefined 10 years ago
mikoff 4f638eb887 All files, which used by chronos board were edited according to new texas instruments headers, all warnings fixed 10 years ago
Oliver Hahm e6177e811a * moved cpu and board specific parts to corresponding Makefiles
* introduced variable for cpu folder
10 years ago
Ludwig Ortmann 2883ca121e migrate to current Makefile structure 10 years ago
Oliver Hahm 7cef6c4655 * adapted thread_stack_init() for ARM and msp430 to the new prototype introduced by bd5b46628f 10 years ago
Oliver Hahm c05c8a248c * added a Makefile.include for generic includes 10 years ago