Skip to content
Snippets Groups Projects
Commit 4b012dfa authored by René Kijewski's avatar René Kijewski
Browse files

Merge pull request #576 from Kijewski/usepkg

Add USEPKG variable for Makefiles
parents 7f4fb027 ee6f6830
No related branches found
No related tags found
No related merge requests found
...@@ -63,6 +63,7 @@ endif ...@@ -63,6 +63,7 @@ endif
# your binaries to link # your binaries to link
BASELIBS += $(BINDIR)$(BOARD)_base.a BASELIBS += $(BINDIR)$(BOARD)_base.a
BASELIBS += $(BINDIR)${PROJECT}.a BASELIBS += $(BINDIR)${PROJECT}.a
BASELIBS += $(USEPKG:%=${BINDIR}%.a)
.PHONY: all clean flash doc term .PHONY: all clean flash doc term
...@@ -71,7 +72,7 @@ all: $(BINDIR)$(PROJECT).a ...@@ -71,7 +72,7 @@ all: $(BINDIR)$(PROJECT).a
@echo "Building project $(PROJECT) for $(BOARD) w/ MCU $(MCU)." @echo "Building project $(PROJECT) for $(BOARD) w/ MCU $(MCU)."
"$(MAKE)" -C $(RIOTBOARD)/$(BOARD) "$(MAKE)" -C $(RIOTBOARD)/$(BOARD)
"$(MAKE)" -C $(RIOTBASE) "$(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) ifeq ($(BUILDOSXNATIVE),1)
$(AD)$(LINK) $(UNDEF) -o $(BINDIR)$(PROJECT).elf $(BASELIBS) $(LINKFLAGS) -Wl,-no_pie $(AD)$(LINK) $(UNDEF) -o $(BINDIR)$(PROJECT).elf $(BASELIBS) $(LINKFLAGS) -Wl,-no_pie
else else
...@@ -91,21 +92,34 @@ SRC = $(wildcard *.c) ...@@ -91,21 +92,34 @@ SRC = $(wildcard *.c)
# string array of all names replaced .c with .o # string array of all names replaced .c with .o
OBJ = $(SRC:%.c=${BINDIR}${PROJECT}/%.o) OBJ = $(SRC:%.c=${BINDIR}${PROJECT}/%.o)
$(BINDIR)$(PROJECT).a: $(OBJ) $(BINDIR)$(PROJECT).a: $(OBJ)
$(AD)$(AR) -rc $(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 # pull in dependency info for *existing* .o files
-include $(OBJ:.o=.d) -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 @echo; echo "Compiling.... $*.c"; echo
@test -d $(BINDIR)$(PROJECT) || mkdir -p $(BINDIR)$(PROJECT) @test -d $(BINDIR)$(PROJECT) || mkdir -p $(BINDIR)$(PROJECT)
$(AD)$(CC) $(CFLAGS) $(INCLUDES) -c $*.c -o $(BINDIR)$(PROJECT)/$*.o $(AD)$(CC) $(CFLAGS) $(INCLUDES) -c $*.c -o $(BINDIR)$(PROJECT)/$*.o
$(USEPKG:%=${BINDIR}%.a)::
@mkdir -p ${BINDIR}
"$(MAKE)" -C $(RIOTBASE)/pkg/$(patsubst ${BINDIR}%.a,%,$@)
clean: clean:
@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean ; done ;
"$(MAKE)" -C $(RIOTBOARD)/$(BOARD) clean "$(MAKE)" -C $(RIOTBOARD)/$(BOARD) clean
"$(MAKE)" -C $(RIOTBASE) clean "$(MAKE)" -C $(RIOTBASE) clean
@for i in $(EXTERNAL_MODULES) ; do "$(MAKE)" -C $$i clean ; done ;
rm -rf $(BINDIR) rm -rf $(BINDIR)
flash: all flash: all
......
...@@ -2,4 +2,4 @@ Packages are included to your project as external modules. Thus you only have ...@@ -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 to add the following line to your project (and update your INCLUDE path
accordingly): accordingly):
EXTERNAL+=$(RIOTBASE)/pkg/<pkg_name> USEPKG += <pkg_name>
...@@ -32,3 +32,6 @@ clean:: ...@@ -32,3 +32,6 @@ clean::
distclean:: distclean::
rm -rf $(CURDIR)/$(PKG_NAME) rm -rf $(CURDIR)/$(PKG_NAME)
Makefile.include:
@true
INCLUDES += -I $(RIOTBASE)/pkg/libcoap/libcoap
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment