numam-dpdk/mk
Olivier Matz feb9f680cd mk: optimize directory dependencies
Before this patch, the management of dependencies between directories
had several issues:

- the generation of .depdirs, done at configuration is slow: it can take
  more than one minute on some slow targets (usually ~10s on a standard
  PC without -j).

- for instance, it is possible to express a dependency like:
  - app/foo depends on lib/librte_foo
  - and lib/librte_foo depends on app/bar
  But this won't work because the directories are traversed with a
  depth-first algorithm, so we have to choose between doing 'app' before
  or after 'lib'.

- the script depdirs-rule.sh is too complex.

- we cannot use "make -d" for debug, because the output of make is used for
  the generation of .depdirs.

This patch moves the DEPDIRS-* variables in the upper Makefile, making
the dependencies much easier to calculate. A DEPDIRS variable is still
used to process library dependencies in LDLIBS.

After this commit, "make config" is almost immediate.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Robin Jarry <robin.jarry@6wind.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-03-27 23:28:43 +02:00
..
arch remove unmaintained TILE-Gx architecture 2017-03-15 11:40:57 +01:00
exec-env mk: prevent overlinking in applications 2016-06-13 16:09:58 +02:00
internal mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
machine mk: remove default toolchain prefix for ThunderX 2017-01-29 15:48:11 +01:00
target/generic config: remove insecure warnings 2016-12-07 18:34:02 +01:00
toolchain mk: generalize strict alignment warning handling 2017-02-27 16:44:32 +01:00
rte.app.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.bsdmodule.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.combinedlib.mk mk: fix linker script when re-building 2016-03-17 21:53:06 +01:00
rte.cpuflags.mk mk: improve ARM NEON detection 2016-03-24 17:46:58 +01:00
rte.extapp.mk mk, scripts: remove useless blank lines 2015-06-12 11:10:02 +02:00
rte.extlib.mk mk: remove ABI versioning for external library 2015-12-08 02:59:54 +01:00
rte.extobj.mk mk, scripts: remove useless blank lines 2015-06-12 11:10:02 +02:00
rte.extshared.mk mk: allow to build shared libraries 2014-02-26 11:01:13 +01:00
rte.extsubdir.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.gnuconfigure.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.hostapp.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.hostlib.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.install.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.lib.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.module.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.obj.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.sdkbuild.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.sdkconfig.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.sdkdepdirs.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.sdkdoc.mk doc: automate examples file list for API 2017-02-08 19:12:08 +01:00
rte.sdkexamples.mk mk: add "make examples" target in root makefile 2014-05-16 16:02:55 +02:00
rte.sdkgcov.mk remove trailing whitespaces 2014-06-11 00:29:34 +02:00
rte.sdkinstall.mk tools: move to usertools 2017-01-04 21:17:32 +01:00
rte.sdkroot.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.sdktest.mk mk: fix message when test application is not built 2017-03-27 10:44:53 +02:00
rte.shared.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.subdir.mk mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
rte.vars.mk mk: allow to override devel mode from environment 2016-09-23 18:30:01 +02:00