mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Merge pull request #576 from Kijewski/usepkg
Add USEPKG variable for Makefiles
This commit is contained in:
commit
4b012dfa54
@ -63,6 +63,7 @@ endif
|
||||
# your binaries to link
|
||||
BASELIBS += $(BINDIR)$(BOARD)_base.a
|
||||
BASELIBS += $(BINDIR)${PROJECT}.a
|
||||
BASELIBS += $(USEPKG:%=${BINDIR}%.a)
|
||||
|
||||
.PHONY: all clean flash doc term
|
||||
|
||||
@ -71,7 +72,7 @@ all: $(BINDIR)$(PROJECT).a
|
||||
@echo "Building project $(PROJECT) for $(BOARD) w/ MCU $(MCU)."
|
||||
"$(MAKE)" -C $(RIOTBOARD)/$(BOARD)
|
||||
"$(MAKE)" -C $(RIOTBASE)
|
||||
@for i in $(EXTERNAL_MODULES) ; do "$(MAKE)" -C $$i ; done ;
|
||||
@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i ; done ;
|
||||
ifeq ($(BUILDOSXNATIVE),1)
|
||||
$(AD)$(LINK) $(UNDEF) -o $(BINDIR)$(PROJECT).elf $(BASELIBS) $(LINKFLAGS) -Wl,-no_pie
|
||||
else
|
||||
@ -91,21 +92,34 @@ SRC = $(wildcard *.c)
|
||||
# string array of all names replaced .c with .o
|
||||
OBJ = $(SRC:%.c=${BINDIR}${PROJECT}/%.o)
|
||||
|
||||
$(BINDIR)$(PROJECT).a: $(OBJ)
|
||||
$(BINDIR)$(PROJECT).a: $(OBJ)
|
||||
$(AD)$(AR) -rc $(BINDIR)$(PROJECT).a $(OBJ)
|
||||
|
||||
# include Makefile.includes for packages in $(USEPKG)
|
||||
$(RIOTBASE)/pkg/%/Makefile.include::
|
||||
$(AD)"$(MAKE)" -C $(RIOTBASE)/pkg/$* Makefile.include
|
||||
|
||||
.PHONY: $(USEPKG:%=$(RIOTBASE)/pkg/%/Makefile.include)
|
||||
|
||||
-include $(USEPKG:%=$(RIOTBASE)/pkg/%/Makefile.include)
|
||||
|
||||
# pull in dependency info for *existing* .o files
|
||||
-include $(OBJ:.o=.d)
|
||||
|
||||
$(BINDIR)$(PROJECT)/%.o: %.c $(PROJDEPS)
|
||||
$(BINDIR)$(PROJECT)/%.o: %.c $(PROJDEPS) $(USEPKG:%=${BINDIR}%.a)
|
||||
@mkdir -p ${BINDIR}
|
||||
@echo; echo "Compiling.... $*.c"; echo
|
||||
@test -d $(BINDIR)$(PROJECT) || mkdir -p $(BINDIR)$(PROJECT)
|
||||
$(AD)$(CC) $(CFLAGS) $(INCLUDES) -c $*.c -o $(BINDIR)$(PROJECT)/$*.o
|
||||
|
||||
$(USEPKG:%=${BINDIR}%.a)::
|
||||
@mkdir -p ${BINDIR}
|
||||
"$(MAKE)" -C $(RIOTBASE)/pkg/$(patsubst ${BINDIR}%.a,%,$@)
|
||||
|
||||
clean:
|
||||
@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean ; done ;
|
||||
"$(MAKE)" -C $(RIOTBOARD)/$(BOARD) clean
|
||||
"$(MAKE)" -C $(RIOTBASE) clean
|
||||
@for i in $(EXTERNAL_MODULES) ; do "$(MAKE)" -C $$i clean ; done ;
|
||||
rm -rf $(BINDIR)
|
||||
|
||||
flash: all
|
||||
|
@ -2,4 +2,4 @@ Packages are included to your project as external modules. Thus you only have
|
||||
to add the following line to your project (and update your INCLUDE path
|
||||
accordingly):
|
||||
|
||||
EXTERNAL+=$(RIOTBASE)/pkg/<pkg_name>
|
||||
USEPKG += <pkg_name>
|
||||
|
@ -32,3 +32,6 @@ clean::
|
||||
|
||||
distclean::
|
||||
rm -rf $(CURDIR)/$(PKG_NAME)
|
||||
|
||||
Makefile.include:
|
||||
@true
|
||||
|
1
pkg/libcoap/Makefile.include
Normal file
1
pkg/libcoap/Makefile.include
Normal file
@ -0,0 +1 @@
|
||||
INCLUDES += -I $(RIOTBASE)/pkg/libcoap/libcoap
|
Loading…
Reference in New Issue
Block a user