diff --git a/Makefile.base b/Makefile.base index 0c5da103d1..ef5d77effe 100644 --- a/Makefile.base +++ b/Makefile.base @@ -68,7 +68,9 @@ $(BINDIR)/$(MODULE)/: $(BINDIR)/$(MODULE).a $(OBJ): | $(BINDIR)/$(MODULE)/ $(BINDIR)/$(MODULE).a: $(OBJ) | ${DIRS:%=ALL--%} - $(Q)$(AR) $(ARFLAGS) $@ $? + @# Recreate archive to cleanup deleted/non selected source files objects + $(Q)$(RM) $@ + $(Q)$(AR) $(ARFLAGS) $@ $^ CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS) CCASFLAGS = $(filter-out $(CCASUWFLAGS), $(CFLAGS)) $(CCASEXFLAGS) diff --git a/doc/doxygen/src/creating-modules.md b/doc/doxygen/src/creating-modules.md index 63d2c840d6..82d54be000 100644 --- a/doc/doxygen/src/creating-modules.md +++ b/doc/doxygen/src/creating-modules.md @@ -34,6 +34,20 @@ current configuration or not. Modules can be used by adding their name to the `USEMODULE` macro of your application's Makefile. +### Pitfalls ### + +The `MODULE` name should be unique or build breaks as modules overwrite the +same output file. + +This problem happened in the past for: + + * Packages root directory (libfixmath/u8g2) + * boards/cpu/periph and their common boards/cpu/periph + +Note: even if all boards and cpus implement the `board` and `cpu` modules, only + one is used in an application so there is no conflict. + + Module dependencies =================== Your module may depend on other modules to minimize code duplication. These