summaryrefslogtreecommitdiff
path: root/meson.build
AgeCommit message (Collapse)Author
2019-05-02build: add libbsd to pkg-config file if enabledBruce Richardson
If libbsd is enabled in DPDK, the strlcpy and strlcat functions in rte_string_fns.h redirect to the varients in libbsd, only using the fallbacks if it is not enabled. Therefore, if libbsd is enabled, it needs to be called out as a DPDK dependency in the pkgconfig file. To ensure that we don't have undefined variables on non-Linux platforms, we can remove the linux condition around the libbsd check - no harm comes in looking for it on other OS, since it's an optional dependency. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-05-02build: fix ninja install on FreeBSDBruce Richardson
The post-install script to symlink the PMDs from their own PMD directory to the regular lib directory (so they would be found by ld at runtime) was using the "-r" flag to ln to create relative symlinks. This flag is unsupported by ln on FreeBSD causing the ninja install step to fail. Reworking the script to take the relative driver path as parameter removes the need for ln to calculate the relative path ensuring compatibility with FreeBSD. As part of the fix, we move the registration of the install script to the config/meson.build file, from the top level one. This improves readability as the script takes as parameters the variables set in that file. Fixes: ed4d43d73e2b ("build: symlink drivers to library directory") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-04-03eal: add OS specific header fileAnand Rawat
Added rte_os.h files to support OS specific functionality. Updated build system to contain OS headers in the include path. Signed-off-by: Anand Rawat <anand.rawat@intel.com> Reviewed-by: Pallavi Kadam <pallavi.kadam@intel.com> Acked-by: Harini Ramakrishnan <harini.ramakrishnan@microsoft.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-04-01build: fix meson build in CI environmentsAli Alnubani
This is to fix a build error with meson in GNU/Linux that is caused by using the 'more' command to read the VERSION file. The error: config/meson.build:10:10: ERROR: String '::::::::::::::\n<RTE_SDK_PATH>VERSION\n::::::::::::::\n19' cannot be converted to int The command 'more' prints the file name before the actual contents of the file when it's being run without a controlling terminal. This could happen in CI environments. Please refer to: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/text-utils/more.c Fixes: c04172b5f031 ("build: add single source of DPDK version number") Fixes: d320fe56bd51 ("build: use version number from config file") Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2019-03-27build: move meson version handling to config directoryBruce Richardson
To keep the top-level meson.build file as clean and clear as possible, we move the version handling to the config/meson.build file, where the rest of the build configuration is already being set up. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2019-03-27build: add single source of DPDK version numberBruce Richardson
Add a new file VERSION to hold the current DPDK version number. Have meson use this file for it's project version, and have make use it for reporting out "showversion" and "showversionum". Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org> Reviewed-by: Rami Rosen <ramirose@gmail.com>
2019-03-26build: move variable for drivers to top levelAndrius Sirvys
If for debugging we disable the driver directory in the meson.build file, we get an error because the variable "driver_classes" does not exist. This is because driver_classes is only defined in the drivers/meson.build file. Defining driver_classes in dpdk/meson.build file will make it easier for compiling separate directories. In the process, we rename driver_classes to dpdk_driver_classes for consistency with the other variables. Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2019-02-27build: bump minimum Meson version to 0.47.1Luca Boccassi
Meson 0.47.1 fixed a bug that is difficult to work around, which causes the linker flag of dependencies to be repeated dozens of times, which causes issues especially when using the built-in dependency() API. Bump the minimum version and remove obsolete version checks. Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2019-02-26test: move to app directoryBruce Richardson
Since all other apps have been moved to the "app" folder, the autotest app remains alone in the test folder. Rather than having an entire top-level folder for this, we can move it back to where it all started in early versions of DPDK - the "app/" folder. This move has a couple of advantages: * This reduces clutter at the top level of the project, due to one less folder. * It eliminates the separate build task necessary for building the autotests using make "make test-build" which means that developers are less likely to miss something in their own compilation tests * It re-aligns the final location of the test binary in the app folder when building with make with it's location in the source tree. For meson builds, the autotest app is different from the other apps in that it needs a series of different test cases defined for it for use by "meson test". Therefore, it does not get built as part of the main loop in the app folder, but gets built separately at the end. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2019-02-25compat: merge compat library into EALBruce Richardson
Since compat library is only a single header, we can easily move it into the EAL common headers instead of tracking it separately. The downside of this is that it becomes a little more difficult to have any libs that are built before EAL depend on it. Thankfully, this is not a major problem as the only library which uses rte_compat.h and is built before EAL (kvargs) already has the path to the compat.h header file explicitly called out as an include path. However, to ensure that we don't hit problems later with this, we can add EAL common headers folder to the global include list in the meson build which means that all common headers can be safely used by all libraries, no matter what their build order. As a side-effect, this patch also fixes an issue with building on BSD using meson, due to compat lib no longer needing to be listed as a dependency. Fixes: a8499f65a1d1 ("log: add missing experimental tag") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Tested-by: David Marchand <david.marchand@redhat.com> Tested-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
2019-02-06version: 19.05-rc0Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: John McNamara <john.mcnamara@intel.com>
2019-02-01version: 19.02.0v19.02Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-01-28version: 19.02-rc4v19.02-rc4Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-01-28build: mention -march in pkg-config descriptionLuca Boccassi
Applications need to at least match DPDK's -march option to build successfully due to some static inline functions in the public headers. This might cause problems, especially in distributions, so add a note in the pkg-config description. Fixes: a25a650be5f0 ("build: add infrastructure for meson and ninja builds") Cc: stable@dpdk.org Signed-off-by: Luca Boccassi <bluca@debian.org> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2019-01-20version: 19.02-rc3v19.02-rc3Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-01-15version: 19.02-rc2v19.02-rc2Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-01-14build: use static deps for pkg-config libs.privateLuca Boccassi
Dependencies of the RTE libraries were not being added to the Requires.private field of the pc file since the variable used for dynamic linking was passed to the related field of pkg.generate. Use the static one so that dependencies are included. Fixes: 57ae0ec62620 ("build: add dependency on telemetry to apps with meson") Cc: stable@dpdk.org Signed-off-by: Luca Boccassi <bluca@debian.org>
2018-12-23version: 19.02-rc1v19.02-rc1Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-30version: 19.02-rc0Thomas Monjalon
Start version numbering for a new release cycle, and introduce a template file for release notes. The release notes comments are updated to mandate a scope label for API and ABI changes. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2018-11-27version: 18.11.0v18.11Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-25version: 18.11-rc5v18.11-rc5Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-19version: 18.11-rc4v18.11-rc4Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-14version: 18.11-rc3v18.11-rc3Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-11-06version: 18.11-rc2v18.11-rc2Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-10-29version: 18.11-rc1v18.11-rc1Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-10-27build: add option to override drivers install directoryLuca Boccassi
Allow users and packagers to override the default dpdk/drivers subdirectory where the PMDs get installed under $lib. Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Timothy Redaelli <tredaelli@redhat.com>
2018-10-27build: change default driver installation directoryLuca Boccassi
As part of the effort of consolidating the DPDK installation bits and pieces across distros, set the default directory of lib/ where PMDs get installed to dpdk/pmds-XX.YY. It's necessary to have a versioned subdirectory as multiple ABI revisions might be installed at the same time, so having a fixed name will cause trouble with the autoload feature. Small refactor with parsing and saving the major version to a variable, since it's now used in 3 different places. Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Timothy Redaelli <tredaelli@redhat.com>
2018-10-27build: add dependency on telemetry to apps with mesonKevin Laatz
This patch adds telemetry as a dependecy to all applications. Without these changes, the --telemetry flag will not be recognised and applications will fail to run if they want to enable telemetry. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-09-18build: generate API documentation with mesonLuca Boccassi
Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-09-18build: use same version as make showversion in mesonLuca Boccassi
make showversion will print 18.11.0-rc0 but Meson sets 18.11-rc0, causing among other things a difference in the generated documentation. Fixes: 76b9d9de5c7d ("version: 18.11-rc0") Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-09-18build: fix compatibility with meson 0.41 onwardsBruce Richardson
Versions of meson prior to 0.47 flattened the parameters to the "set_variable" function, which meant that the function could not take array variables as a parameter. Therefore, we need to disable driver tracking for those older versions, in order to maintain compatibility with the minimum supported 0.41 version, and also v0.45 shipped in Ubuntu 18.04 release. Fixes: 806c45dd483d ("build: add configuration summary at end of config") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Timothy Redaelli <tredaelli@redhat.com>
2018-09-17build: add configuration summary at end of configBruce Richardson
After running meson to configure a DPDK build, it can be useful to know what was automatically enabled or disabled. Therefore, print out by way of summary a categorised list of libraries and drivers to be built. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2018-08-13version: 18.11-rc0Thomas Monjalon
Start version numbering for a new release cycle, and introduce a template file for release notes. The release notes comments have a new block to suggest the order of items, inspired by Ferruh's proposal. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: John McNamara <john.mcnamara@intel.com>
2018-08-09version: 18.08.0v18.08Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-08-06version: 18.08-rc3v18.08-rc3Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-07-26version: 18.08-rc2v18.08-rc2Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-07-16version: 18.08-rc1v18.08-rc1Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-06-01version: 18.08-rc0Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-30version: 18.05.0v18.05Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-28version: 18.05-rc6v18.05-rc6Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-23version: 18.05-rc5v18.05-rc5Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-15version: 18.05-rc4v18.05-rc4Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-15version: 18.05-rc3v18.05-rc3Ferruh Yigit
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-05-08kernel: fix cross-build of Linux modules with mesonBruce Richardson
When cross-compiling, if no kernel_dir was specified, then the kernel modules were still being compiled for the build machine. Fix this by only building modules on cross-compile when we have a kernel_dir value set. Print out a message indicating why we are skipping kernel compilation, and in case that the headers for kernel compile are not found, print a warning instead of erroring out. Fixes: a52f4574f798 ("igb_uio: build with meson") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
2018-05-02version: 18.05-rc2v18.05-rc2Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-04-28version: 18.05-rc1v18.05-rc1Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-03-21move kernel modules directoriesHemant Agrawal
This patch moves the kernel modules code from EAL to a common place. - Separate the kernel module code from user space code. Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30build: detect micro-arch on ARMPavan Nikhilesh
Added support for detecting march and mcpu by reading midr_el1 register. The implementer, primary part number values read can be used to figure out the underlying arm cpu. Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-30test: build app with meson as dpdk-testHarry van Haaren
This patch enables the test/test app to be built. It also adds the test binary to be a meson-test, which allows the meson test infrastructure to be used to run tests. Tests are listed using the same test binary, however each test sets a different DPDK_TEST environment variable. The string contents of this DPDK_TEST env var is entered in the command line interface. As such, the familiar test names such as "ring_perf_autotest" etc are valid tests to run using this meson test infrastructure. Note that the tests are run serially, given that we cannot run multiple primary processes at a time. As each test must initialize EAL this takes some time depending on the number of hugepages. In future, we could improve this to run multiple tests from one EAL init, but it is out of scope for this patchset. Finally, an option to build the tests is added to the meson build options. When disabled, the unit test code in test/test is not compiled. The default is set to 'true'. To disable, run: $ meson configure -Dtests=false Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30build: remove architecture flag as default C flagBruce Richardson
Any flags added to the project args are automatically added to all builds, both native and cross-compiled. This is not what we want for the -march flag as a valid -march for the cross-compile is not valid for pmdinfogen which is a native-build tool. Instead we store the march flag as a variable, and add it to the default cflags for all libs, drivers, examples, etc. This will allow pmdinfogen to compile successfully in a cross-compilation environment. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>