Commit Graph

30 Commits (c9c1f0d7fee02e4c46f11dbca6ce32e15a17b521)

Author SHA1 Message Date
René Kijewski 1d34522703 make: evaluate the Git SHA only once 9 years ago
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`.
9 years ago
René Kijewski 840c0f0a57 make: detect their module name automatically
For many modules the `Makefile` contains a line like
```
MODULE:=$(shell basename $(CURDIR))
```
This conclusively shows that we do not have to set the module name
manually.

This PR removes the need to set the module name manually, if it is the
same as the basename. E.g. for `…/sys/vtimer/Makefile` the variable
make `MODULE` will still be `vtimer`, because it is the basename of the
Makefile.
9 years ago
René Kijewski e189064171 make: print error if make was executed in the root
Fixes #1104, alternative to #1178.
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 21af9f11f9 Make: do not spam error messages on shallow clones
> `--always`: Show uniquely abbreviated commit object as fallback.
9 years ago
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
```
9 years ago
Ludwig Ortmann 1bd3f7bb86 pipe through sed instead
addresses: https://github.com/RIOT-OS/RIOT/pull/778#discussion_r10041955
9 years ago
Ludwig Ortmann 7229287e47 Prepend path to dependency info files with sed
The old way was error prone due to it's use of a fixed path file and
confusing.

closes #775
9 years ago
Ludwig Ortmann 2525920426 remove trailing whitespace and newlines 9 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.
9 years ago
Oleg Hahm c7d985d371 removed redundant include pathes from Makefiles 9 years ago
Oleg Hahm 26c50522d5 simplified and unified cpu build structure 9 years ago
Oleg Hahm 55f31a4829 simplify include structure for boards
* do not overwrite CFLAGS in boards Makefile
9 years ago
Ludwig Ortmann 4c612f6d08 use $(CC) for *.S files 9 years ago
Oleg Hahm e9b04cc380 only add branch to version string if not in master 9 years ago
Oleg Hahm 529f3fb278 include version string 9 years ago
Oleg Hahm 739cd03234 do not overwrite SRC in Makefile.base 10 years ago
authmillenon 4f363ce0fe Define phony make targets 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
Oliver Hahm d31bad6c9e * cleaned up output from Makefiles 10 years ago
Ludwig Ortmann a900065fb0 remove cruft in Makefile.base 10 years ago
Ludwig Ortmann 2c744bc1e8 generalize .S compilation target flags 10 years ago
Ludwig Ortmann c6553f6492 interrupt handling rewrite
(including uart0 integration, rt-extension removal)
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
Ludwig Ortmann f8973bb007 Merge remote-tracking branch 'upstream/master' 10 years ago
Oliver Hahm 7a4dec1830 * replaced new Makefile name in Makefiles 10 years ago
Oliver Hahm 5ffe5a9c27 * renamed makefiles to Makefile 10 years ago