mk: RTE_BUILD_COMBINE_LIBS doesn't work properly anymore
Hello,
since the hardware specific library functions were put into a separate folder 'drivers' the feature to build a combined library doesn't generate a combined library including these hardware specific functions anymore. The reason for this is that the combined library is built before the 'drivers' folder is built.
For me it worked changing in dpdk/mk/rte.sdkbuild.mk
line 96 from:
@if [ $@ = lib -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \
to:
@if [ $@ = drivers -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \
here the context:
$(ROOTDIRS-y):
@[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@
@echo "== Build $@"
$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all
@if [ $@ = drivers -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \
$(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \
fiBest regards
Dirk
Quoted 21 lines · Dirk-Holger Lenz
Hello,
since the hardware specific library functions were put into a separate folder 'drivers' the feature to build a combined library doesn't generate a combined library including these hardware specific functions anymore. The reason for this is that the combined library is built before the 'drivers' folder is built.
For me it worked changing indpdk/mk/rte.sdkbuild.mk
line 96 from:
@if [ $@ = lib -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \
to:
@if [ $@ = drivers -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \here the context:
$(ROOTDIRS-y):@[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@ @echo "== Build $@" $(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all @if [ $@ = drivers -a $(RTE_BUILD_COMBINE_LIBS) = y ]; then \ $(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \ fi
Quoted 3 lines
Best regards
Dirk
Yes, that fixes it.
There is already a patch for it that does exactly that :) (not merge yet though).
http://dpdk.org/ml/archives/dev/2015-June/019040.html
Sergio