[dpdk-dev] [PATCH 03/10] mk: install a standard cutomizable tree
Thomas Monjalon
thomas.monjalon at 6wind.com
Wed Dec 2 12:25:26 CET 2015
2015-12-02 12:27, Panu Matilainen:
> On 12/02/2015 05:57 AM, Thomas Monjalon wrote:
> > The old installed tree was static and always had .config, includes and
> > libs in a RTE_TARGET subdirectory. There is no such directory anymore in
> > an installed SDK. So the top directory is checked.
> > But RTE_TARGET can still be used, especially to build an app with a
> > compiled but not installed SDK.
> > That's why both cases are looked for RTE_SDK_BIN.
[...]
> > The old usage of an installed SDK is:
> > make -C examples/helloworld RTE_SDK=$(readlink -m $DESTDIR) \
> > RTE_TARGET=x86_64-native-linuxapp-gcc
> > RTE_TARGET can be specified but is useless now with an installed SDK.
> > The RTE_SDK directory must now point to a different path depending of
> > the installation.
[...]
> > + $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir))
> > + $(Q)cp -a $(BUILD_DIR)/.config $(DESTDIR)$(sdkdir)
> > + $(Q)cp -a $(RTE_SDK)/{mk,scripts} $(DESTDIR)$(sdkdir)
> > + $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(sdkdir)/include)
> > + $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(sdkdir)/lib)
>
> $(prefix)/share is supposed to be shareable across different
> architectures. Most of the content here is, but at least the lib symlink
> and .config file are not.
The case you want to address is multilib 32/x32/64, right?
> One option is to install .config and the symlinks within $(sdkdir)/$(T)
> directories, then it can be shared across architectures because each
> lives in their own directory. Another possibility is moving the whole
> sdk directory into a subdir in $(libdir), but that misses the
> opportunity to share across architectures (whether anybody actually
> cares is a whole other question :)
Yes, I tried to remove the use of RTE_TARGET when building an example.
But we can keep it with a subdirectory in $(sdkdir).
> $(sdkdir)/lib -> $(libdir) symlink seems reasonable when installing to
> an empty staging root, but on a real-world installation it'd point to
> /usr/lib(something) which has hundreds or thousands of other unrelated
> libraries. My memory is hazy on details but I think this caused an
> actual problem with something because I ended up $(sdkdir)/lib an actual
> directory populated with symlinks to the individual DPDK libraries.
I don't see the problem.
I suggest to keep it and see how to fix it if an issue is raised.
More information about the dev
mailing list