984af543c2
Some kernel modules may need some header files to be "installed"
in the build directory.
When running multiple threads of make, kernel modules can try to
be compiled before the lib headers are ready:
make -j3
kernel/linux/kni/kni_misc.c:19:37: fatal error:
exec-env/rte_kni_common.h: No such file or directory
This error appeared recently after moving kernel modules in their
own directory.
Fixes: acaa9ee991
("move kernel modules directories")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
76 lines
1.8 KiB
Makefile
76 lines
1.8 KiB
Makefile
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2010-2015 Intel Corporation
|
|
|
|
#
|
|
# include rte.vars.mk if config file exists
|
|
#
|
|
ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
|
|
$(error "need a make config first")
|
|
else
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
endif
|
|
|
|
# allow exec-env specific targets
|
|
-include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.custom.mk
|
|
|
|
buildtools: | lib
|
|
kernel: | lib
|
|
drivers: | lib buildtools
|
|
app: | lib buildtools drivers
|
|
test: | lib buildtools drivers
|
|
|
|
#
|
|
# build and clean targets
|
|
#
|
|
|
|
CLEANDIRS = $(addsuffix _clean,$(ROOTDIRS-y) $(ROOTDIRS-n) $(ROOTDIRS-))
|
|
|
|
.PHONY: build
|
|
build: $(ROOTDIRS-y)
|
|
@echo "Build complete [$(RTE_TARGET)]"
|
|
|
|
.PHONY: clean
|
|
clean: $(CLEANDIRS)
|
|
@rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
|
|
$(RTE_OUTPUT)/lib \
|
|
$(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod
|
|
@[ -d $(RTE_OUTPUT)/include ] || mkdir -p $(RTE_OUTPUT)/include
|
|
@$(RTE_SDK)/buildtools/gen-config-h.sh $(RTE_OUTPUT)/.config \
|
|
> $(RTE_OUTPUT)/include/rte_config.h
|
|
$(Q)$(MAKE) -f $(RTE_SDK)/GNUmakefile gcovclean
|
|
@echo Clean complete
|
|
|
|
.PHONY: test-build
|
|
test-build: test
|
|
|
|
.SECONDEXPANSION:
|
|
.PHONY: $(ROOTDIRS-y) $(ROOTDIRS-)
|
|
$(ROOTDIRS-y) $(ROOTDIRS-):
|
|
@[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@
|
|
@echo "== Build $@"
|
|
$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all
|
|
@if [ $@ = drivers ]; then \
|
|
$(MAKE) -f $(RTE_SDK)/mk/rte.combinedlib.mk; \
|
|
fi
|
|
|
|
%_clean:
|
|
@echo "== Clean $*"
|
|
$(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile -a -d $(BUILDDIR)/$* ]; then \
|
|
$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* clean ; \
|
|
fi
|
|
|
|
RTE_MAKE_SUBTARGET ?= all
|
|
|
|
%_sub: $(addsuffix _sub,$(*))
|
|
@echo $(addsuffix _sub,$(*))
|
|
@[ -d $(BUILDDIR)/$* ] || mkdir -p $(BUILDDIR)/$*
|
|
@echo "== Build $*"
|
|
$(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* \
|
|
$(RTE_MAKE_SUBTARGET)
|
|
|
|
.PHONY: all
|
|
all: build
|
|
|
|
.PHONY: FORCE
|
|
FORCE:
|