[dpdk-dev,v4,6/7] mk: Add rule for installing sdk files
Commit Message
Add hierarchy-file support to the DPDK makefiles, scripts,
examples, tools, config files and headers.
When invoking "make install-sdk" makefiles, scripts,
examples, tools, config files will be installed in:
$(DESTDIR)/$(SDK_DIR)
and headers will be installed in:
$(DESTDIR)/$(INCLUDE_DIR)
Where SDK_DIR=/usr/share/dpdk and INCLUDE_DIR=/usr/include/dpdk
by default.
You can overrite SDK_DIR and INCLUDE_DIR vars.
This hierarchy is based on:
http://www.freedesktop.org/software/systemd/man/file-hierarchy.html
Signed-off-by: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>
---
mk/rte.sdkinstall.mk | 20 ++++++++++++++++++++
mk/rte.sdkroot.mk | 4 ++--
2 files changed, 22 insertions(+), 2 deletions(-)
Comments
Hi Panu,
On 10/05/2015 10:20 PM, Mario Carrillo wrote:
> Add hierarchy-file support to the DPDK makefiles, scripts,
> examples, tools, config files and headers.
>
> When invoking "make install-sdk" makefiles, scripts,
> examples, tools, config files will be installed in:
> $(DESTDIR)/$(SDK_DIR)
> and headers will be installed in:
> $(DESTDIR)/$(INCLUDE_DIR)
>
> Where SDK_DIR=/usr/share/dpdk and INCLUDE_DIR=/usr/include/dpdk
> by default.
>
> You can overrite SDK_DIR and INCLUDE_DIR vars.
> This hierarchy is based on:
> http://www.freedesktop.org/software/systemd/man/file-hierarchy.html
>
> Signed-off-by: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>
I don't know if it's feasible, but I think it would be great here
to be able to install a SDK that is usable to build external
applications.
I mean, doing something like that:
make install-sdk DESTDIR=/tmp/sdk
cd /path/to/examples/helloworld
make RTE_SDK=/tmp/sdk/usr/share/dpdk
Else, what is the purpose of installing the sdk?
Regards,
Olivier
On 10/16/2015 10:31 PM, Olivier MATZ wrote:
> Hi Panu,
>
> On 10/05/2015 10:20 PM, Mario Carrillo wrote:
>> Add hierarchy-file support to the DPDK makefiles, scripts,
>> examples, tools, config files and headers.
>>
>> When invoking "make install-sdk" makefiles, scripts,
>> examples, tools, config files will be installed in:
>> $(DESTDIR)/$(SDK_DIR)
>> and headers will be installed in:
>> $(DESTDIR)/$(INCLUDE_DIR)
>>
>> Where SDK_DIR=/usr/share/dpdk and INCLUDE_DIR=/usr/include/dpdk
>> by default.
>>
>> You can overrite SDK_DIR and INCLUDE_DIR vars.
>> This hierarchy is based on:
>> http://www.freedesktop.org/software/systemd/man/file-hierarchy.html
>>
>> Signed-off-by: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>
>
> I don't know if it's feasible, but I think it would be great here
> to be able to install a SDK that is usable to build external
> applications.
>
> I mean, doing something like that:
>
> make install-sdk DESTDIR=/tmp/sdk
> cd /path/to/examples/helloworld
> make RTE_SDK=/tmp/sdk/usr/share/dpdk
>
> Else, what is the purpose of installing the sdk?
Its possible (been there), it just needs some additional symlinks and
such, at least for lib/ and include/. However at that point the contents
become arch-dependent (due to the lib symlink) meaning it cannot go into
/usr/share.
- Panu -
> Regards,
> Olivier
>
@@ -45,6 +45,7 @@ ifneq (,$(wildcard $(BUILD_DIR)/build/.config))
INCLUDE_DIR ?= /usr/include/dpdk
BIN_DIR ?= /usr/bin
DOC_DIR ?= /usr/share/doc/dpdk
+DATA_DIR ?= /usr/share/dpdk
HSLINKS := $(wildcard $(RTE_OUTPUT)/include/*)
BINARY_FILES := $(patsubst %.map,,$(wildcard $(RTE_OUTPUT)/app/*))
NIC_FILES := $(wildcard $(BUILD_DIR)/tools/*.py)
@@ -162,6 +163,25 @@ install-doc:
echo installing: $$DOC; \
done
#
+# install sdk files in /usr/share/dpdk by default
+# DATA_DIR can be overridden.
+#
+.PHONY: install-sdk
+install-sdk: install-headers
+ @echo ================== Installing sdk files
+ @[ -d $(DESTDIR)/$(DATA_DIR) ] || mkdir -p $(DESTDIR)/$(DATA_DIR); \
+ cp -rf $(BUILD_DIR)/mk $(DESTDIR)/$(DATA_DIR); \
+ echo installing: $(BUILD_DIR)/mk; \
+ cp -rf $(BUILD_DIR)/scripts $(DESTDIR)/$(DATA_DIR); \
+ echo installing: $(BUILD_DIR)/scripts; \
+ cp -rf $(BUILD_DIR)/examples $(DESTDIR)/$(DATA_DIR); \
+ echo installing: $(BUILD_DIR)/examples; \
+ cp -rf $(BUILD_DIR)/tools $(DESTDIR)/$(DATA_DIR); \
+ echo installing: $(BUILD_DIR)/scripts
+ @[ -d $(DESTDIR)/$(DATA_DIR)/config ] || mkdir -p $(DESTDIR)/$(DATA_DIR)/config; \
+ cp -f $(BUILD_DIR)/build/.config $(DESTDIR)/$(DATA_DIR)/config; \
+ echo installing: $(BUILD_DIR)/build/.config
+#
# uninstall: remove all built sdk
#
UNINSTALL_TARGETS := $(addsuffix _uninstall,\
@@ -98,9 +98,9 @@ testall:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktestall.mk $@
.PHONY: install install-headers install-bin install-lib install-mod \
-install-doc uninstall
+install-doc install-sdk uninstall
install install-headers install-bin install-lib install-mod install-doc \
-uninstall:
+install-sdk uninstall:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
.PHONY: doc help