Make the recipe simpler to use and build in configurable directory. HOSTAPP_DIR must be set before including rte.hostapp.mk.
Remove LDLIBS_FILES as libraries should not be used in an hostapp. Remove the "INSTALL-HOSTAPP" and build directly in the right directory. Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> --- doc/guides/freebsd_gsg/build_dpdk.rst | 2 +- doc/guides/linux_gsg/build_dpdk.rst | 2 +- doc/guides/prog_guide/dev_kit_build_system.rst | 2 +- mk/rte.hostapp.mk | 23 +++++------------------ mk/rte.sdkbuild.mk | 3 +-- mk/rte.sdkconfig.mk | 3 +-- 6 files changed, 10 insertions(+), 25 deletions(-) diff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst index 1d92c08..93c4366 100644 --- a/doc/guides/freebsd_gsg/build_dpdk.rst +++ b/doc/guides/freebsd_gsg/build_dpdk.rst @@ -183,7 +183,7 @@ contains the kernel modules to install: ls x86_64-native-bsdapp-gcc - app build hostapp include kmod lib Makefile + app build include kmod lib Makefile .. _loading_contigmem: diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst index 198c0b6..fb2c481 100644 --- a/doc/guides/linux_gsg/build_dpdk.rst +++ b/doc/guides/linux_gsg/build_dpdk.rst @@ -152,7 +152,7 @@ A kmod directory is also present that contains kernel modules which may be load ls x86_64-native-linuxapp-gcc - app build hostapp include kmod lib Makefile + app build include kmod lib Makefile Loading Modules to Enable Userspace IO for DPDK ----------------------------------------------- diff --git a/doc/guides/prog_guide/dev_kit_build_system.rst b/doc/guides/prog_guide/dev_kit_build_system.rst index 9b0de83..dedd18a 100644 --- a/doc/guides/prog_guide/dev_kit_build_system.rst +++ b/doc/guides/prog_guide/dev_kit_build_system.rst @@ -264,7 +264,7 @@ These Makefiles generate a binary application. * rte.extapp.mk: External application -* rte.hostapp.mk: Host application in the development kit framework +* rte.hostapp.mk: Prerequisite tool to build DPDK Library ^^^^^^^ diff --git a/mk/rte.hostapp.mk b/mk/rte.hostapp.mk index c44d0f8..05bbd26 100644 --- a/mk/rte.hostapp.mk +++ b/mk/rte.hostapp.mk @@ -40,8 +40,8 @@ include $(RTE_SDK)/mk/internal/rte.depdirs-pre.mk # VPATH contains at least SRCDIR VPATH += $(SRCDIR) -_BUILD = $(HOSTAPP) -_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/hostapp/$(HOSTAPP) +_BUILD = $(RTE_OUTPUT)/$(HOSTAPP_DIR)/$(HOSTAPP) +_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/$(HOSTAPP_DIR)/$(HOSTAPP) _CLEAN = doclean .PHONY: all @@ -60,7 +60,7 @@ exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) O_TO_EXE = $(HOSTCC) $(HOST_LDFLAGS) $(LDFLAGS_$(@)) \ $(EXTRA_HOST_LDFLAGS) -o $@ $(OBJS-y) $(LDLIBS) O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight -O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," HOSTLD $(@)") +O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," HOSTLD $(@F)") O_TO_EXE_CMD = "cmd_$@ = $(O_TO_EXE_STR)" O_TO_EXE_DO = @set -e; \ echo $(O_TO_EXE_DISP); \ @@ -69,15 +69,10 @@ O_TO_EXE_DO = @set -e; \ -include .$(HOSTAPP).cmd -# list of .a files that are linked to this application -LDLIBS_FILES := $(wildcard \ - $(addprefix $(RTE_OUTPUT)/lib/, \ - $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS))))) - # # Compile executable file if needed # -$(HOSTAPP): $(OBJS-y) $(LDLIBS_FILES) FORCE +$(RTE_OUTPUT)/$(HOSTAPP_DIR)/$(HOSTAPP): $(OBJS-y) FORCE @[ -d $(dir $@) ] || mkdir -p $(dir $@) $(if $(D),\ @echo -n "$@ -> $< " ; \ @@ -93,14 +88,6 @@ $(HOSTAPP): $(OBJS-y) $(LDLIBS_FILES) FORCE $(O_TO_EXE_DO)) # -# install app in $(RTE_OUTPUT)/hostapp -# -$(RTE_OUTPUT)/hostapp/$(HOSTAPP): $(HOSTAPP) - @echo " INSTALL-HOSTAPP $(HOSTAPP)" - @[ -d $(RTE_OUTPUT)/hostapp ] || mkdir -p $(RTE_OUTPUT)/hostapp - $(Q)cp -f $(HOSTAPP) $(RTE_OUTPUT)/hostapp - -# # Clean all generated files # .PHONY: clean @@ -109,7 +96,7 @@ clean: _postclean .PHONY: doclean doclean: - $(Q)rm -rf $(HOSTAPP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \ + $(Q)rm -rf $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \ $(CMDS-all) $(INSTALL-FILES-all) .$(HOSTAPP).cmd diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk index 6dbdb5d..f1a163a 100644 --- a/mk/rte.sdkbuild.mk +++ b/mk/rte.sdkbuild.mk @@ -63,8 +63,7 @@ build: $(ROOTDIRS-y) .PHONY: clean clean: $(CLEANDIRS) @rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \ - $(RTE_OUTPUT)/hostapp $(RTE_OUTPUT)/lib \ - $(RTE_OUTPUT)/kmod + $(RTE_OUTPUT)/lib $(RTE_OUTPUT)/kmod @[ -d $(RTE_OUTPUT)/include ] || mkdir -p $(RTE_OUTPUT)/include @$(RTE_SDK)/scripts/gen-config-h.sh $(RTE_OUTPUT)/.config \ > $(RTE_OUTPUT)/include/rte_config.h diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk index 98789af..44522ac 100644 --- a/mk/rte.sdkconfig.mk +++ b/mk/rte.sdkconfig.mk @@ -108,8 +108,7 @@ $(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT) # if NODOTCONF variable is defined, don't try to rebuild .config $(RTE_OUTPUT)/include/rte_config.h: $(RTE_OUTPUT)/.config $(Q)rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \ - $(RTE_OUTPUT)/hostapp $(RTE_OUTPUT)/lib \ - $(RTE_OUTPUT)/kmod $(RTE_OUTPUT)/build + $(RTE_OUTPUT)/lib $(RTE_OUTPUT)/kmod $(RTE_OUTPUT)/build $(Q)mkdir -p $(RTE_OUTPUT)/include $(Q)$(RTE_SDK)/scripts/gen-config-h.sh $(RTE_OUTPUT)/.config \ > $(RTE_OUTPUT)/include/rte_config.h -- 2.7.0