config: make libarchive optional
The commit 66819e6 has introduced a dependency on libarchive to be able to use some tar resources in the unit tests. It is now an optional dependency because some systems do not have it installed. If CONFIG_RTE_APP_TEST_RESOURCE_TAR is disabled, the PCI test will not be run. When a "configure" script will be integrated, the libarchive availability could be checked to automatically enable the option. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Reviewed-by: Jan Viktorin <viktorin@rehivetech.com>
This commit is contained in:
parent
3a4c1dc58b
commit
18aa32725e
@ -51,12 +51,15 @@ $(1).res.o: $(2)
|
||||
/dev/stdin $$@ < $$<
|
||||
endef
|
||||
|
||||
ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
|
||||
define linked_tar_resource
|
||||
$(1).tar: $(2)
|
||||
tar -C $$(dir $$<) -cf $$@ $$(notdir $$<)
|
||||
|
||||
$(call linked_resource,$(1),$(1).tar)
|
||||
endef
|
||||
else # ! CONFIG_RTE_APP_TEST_RESOURCE_TAR
|
||||
linked_tar_resource =
|
||||
endif # CONFIG_RTE_APP_TEST_RESOURCE_TAR
|
||||
|
||||
#
|
||||
# library name
|
||||
@ -72,7 +75,7 @@ SRCS-y += resource.c
|
||||
SRCS-y += test_resource.c
|
||||
$(eval $(call linked_resource,test_resource_c,resource.c))
|
||||
$(eval $(call linked_tar_resource,test_resource_tar,test_resource.c))
|
||||
SRCS-y += test_pci.c
|
||||
SRCS-$(CONFIG_RTE_APP_TEST_RESOURCE_TAR) += test_pci.c
|
||||
$(eval $(call linked_tar_resource,test_pci_sysfs,test_pci_sysfs))
|
||||
SRCS-y += test_prefetch.c
|
||||
SRCS-y += test_byteorder.c
|
||||
@ -194,7 +197,6 @@ CFLAGS += $(WERROR_FLAGS)
|
||||
CFLAGS += -D_GNU_SOURCE
|
||||
|
||||
LDLIBS += -lm
|
||||
LDLIBS += -larchive
|
||||
|
||||
# Disable VTA for memcpy test
|
||||
ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
|
||||
@ -218,6 +220,10 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
|
||||
LDLIBS += -larchive
|
||||
endif
|
||||
|
||||
include $(RTE_SDK)/mk/rte.app.mk
|
||||
|
||||
endif
|
||||
|
@ -33,8 +33,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <archive.h>
|
||||
#include <archive_entry.h>
|
||||
#include <errno.h>
|
||||
#include <sys/queue.h>
|
||||
|
||||
@ -97,6 +95,10 @@ int resource_fwrite_file(const struct resource *r, const char *fname)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef RTE_APP_TEST_RESOURCE_TAR
|
||||
#include <archive.h>
|
||||
#include <archive_entry.h>
|
||||
|
||||
static int do_copy(struct archive *r, struct archive *w)
|
||||
{
|
||||
const void *buf;
|
||||
@ -295,6 +297,8 @@ fail:
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif /* RTE_APP_TEST_RESOURCE_TAR */
|
||||
|
||||
void resource_register(struct resource *r)
|
||||
{
|
||||
TAILQ_INSERT_TAIL(&resource_list, r, next);
|
||||
|
@ -245,6 +245,7 @@ run_object_creation_tests(void)
|
||||
printf("# Checked rte_lpm_create() OK\n");
|
||||
#endif
|
||||
|
||||
#ifdef RTE_APP_TEST_RESOURCE_TAR
|
||||
/* Run a test_pci call */
|
||||
if (test_pci() != 0) {
|
||||
printf("PCI scan failed in secondary\n");
|
||||
@ -252,6 +253,7 @@ run_object_creation_tests(void)
|
||||
return -1;
|
||||
} else
|
||||
printf("PCI scan succeeded in secondary\n");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -266,9 +268,11 @@ test_mp_secondary(void)
|
||||
{
|
||||
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
|
||||
if (!test_pci_run) {
|
||||
#ifdef RTE_APP_TEST_RESOURCE_TAR
|
||||
printf("=== Running pre-requisite test of test_pci\n");
|
||||
test_pci();
|
||||
printf("=== Requisite test done\n");
|
||||
#endif
|
||||
}
|
||||
return run_secondary_instances();
|
||||
}
|
||||
|
@ -85,6 +85,7 @@ static int test_resource_c(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef RTE_APP_TEST_RESOURCE_TAR
|
||||
REGISTER_LINKED_RESOURCE(test_resource_tar);
|
||||
|
||||
static int test_resource_tar(void)
|
||||
@ -111,6 +112,8 @@ static int test_resource_tar(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* RTE_APP_TEST_RESOURCE_TAR */
|
||||
|
||||
static int test_resource(void)
|
||||
{
|
||||
if (test_resource_dpdk())
|
||||
@ -119,8 +122,10 @@ static int test_resource(void)
|
||||
if (test_resource_c())
|
||||
return -1;
|
||||
|
||||
#ifdef RTE_APP_TEST_RESOURCE_TAR
|
||||
if (test_resource_tar())
|
||||
return -1;
|
||||
#endif /* RTE_APP_TEST_RESOURCE_TAR */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -546,6 +546,7 @@ CONFIG_RTE_INSECURE_FUNCTION_WARNING=n
|
||||
# Compile the test application
|
||||
#
|
||||
CONFIG_RTE_APP_TEST=y
|
||||
CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
|
||||
|
||||
#
|
||||
# Compile the PMD test application
|
||||
|
@ -101,6 +101,9 @@ Compilation of the DPDK
|
||||
* libpcap headers and libraries (libpcap-devel) to compile and use the libpcap-based poll-mode driver.
|
||||
This driver is disabled by default and can be enabled by setting ``CONFIG_RTE_LIBRTE_PMD_PCAP=y`` in the build time config file.
|
||||
|
||||
* libarchive headers and library are needed for some unit tests using tar to get their resources.
|
||||
|
||||
|
||||
Running DPDK Applications
|
||||
-------------------------
|
||||
|
||||
|
@ -35,6 +35,7 @@ default_path=$PATH
|
||||
# Load config options:
|
||||
# - AESNI_MULTI_BUFFER_LIB_PATH
|
||||
# - DPDK_BUILD_TEST_CONFIGS (defconfig1+option1+option2 defconfig2)
|
||||
# - DPDK_DEP_ARCHIVE
|
||||
# - DPDK_DEP_CFLAGS
|
||||
# - DPDK_DEP_LDFLAGS
|
||||
# - DPDK_DEP_MOFED (y/[n])
|
||||
@ -111,6 +112,7 @@ reset_env ()
|
||||
{
|
||||
export PATH=$default_path
|
||||
unset CROSS
|
||||
unset DPDK_DEP_ARCHIVE
|
||||
unset DPDK_DEP_CFLAGS
|
||||
unset DPDK_DEP_LDFLAGS
|
||||
unset DPDK_DEP_MOFED
|
||||
@ -149,6 +151,8 @@ config () # <directory> <target> <options>
|
||||
sed -ri 's,(PCI_CONFIG=)n,\1y,' $1/.config
|
||||
sed -ri 's,(LIBRTE_IEEE1588=)n,\1y,' $1/.config
|
||||
sed -ri 's,(BYPASS=)n,\1y,' $1/.config
|
||||
test "$DPDK_DEP_ARCHIVE" != y || \
|
||||
sed -ri 's,(RESOURCE_TAR=)n,\1y,' $1/.config
|
||||
test "$DPDK_DEP_MOFED" != y || \
|
||||
sed -ri 's,(MLX._PMD=)n,\1y,' $1/.config
|
||||
test "$DPDK_DEP_SZE" != y || \
|
||||
|
Loading…
x
Reference in New Issue
Block a user