[dpdk-dev] mk: Fix examples install

Message ID 1452250981-5286-1-git-send-email-christian.ehrhardt@canonical.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Christian Ehrhardt Jan. 8, 2016, 11:03 a.m. UTC
  Depending on non-doc targets being built before and the setting of DESTDIR
the copy of the examples dir being part of install-doc could in some cases fail
with a non existant "$(DESTDIR)$(datadir)" target directory.
Add the conditional rte_mkdir for that to avoid the issue.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---

[diffstat]
 rte.sdkinstall.mk |    1 +
  1 file changed, 1 insertion(+)

[diff]
  

Comments

Christian Ehrhardt Jan. 8, 2016, 11:08 a.m. UTC | #1
Forgot to mention, an easy way to test-trigger this e.g. on the dpdk 2.2
tarball.

make clean; make config T=x86_64-native-linuxapp-gcc && && make -j && make
V=1 DESTDIR=Test install-doc

In this example the install-doc fails with this:
[...]
Build complete [x86_64-native-linuxapp-gcc]
make -f /home/ubuntu/dpdk-2.2.0/mk/rte.sdkinstall.mk install-doc
cp -a /home/ubuntu/dpdk-2.2.0/examples Test/usr/local/share/dpdk
cp: cannot create directory ‘Test/usr/local/share/dpdk’: No such file or
directory
/home/ubuntu/dpdk-2.2.0/mk/rte.sdkinstall.mk:160: recipe for target
'install-doc' failed
make[1]: *** [install-doc] Error 1
/home/ubuntu/dpdk-2.2.0/mk/rte.sdkroot.mk:101: recipe for target
'install-doc' failed
make: *** [install-doc] Error 2

Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

On Fri, Jan 8, 2016 at 12:03 PM, Christian Ehrhardt <
christian.ehrhardt@canonical.com> wrote:

> Depending on non-doc targets being built before and the setting of DESTDIR
> the copy of the examples dir being part of install-doc could in some cases
> fail
> with a non existant "$(DESTDIR)$(datadir)" target directory.
> Add the conditional rte_mkdir for that to avoid the issue.
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
>
> [diffstat]
>  rte.sdkinstall.mk |    1 +
>   1 file changed, 1 insertion(+)
>
> [diff]
> diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
> index c159bf7..68e56b6 100644
> --- a/mk/rte.sdkinstall.mk
> +++ b/mk/rte.sdkinstall.mk
> @@ -157,4 +157,5 @@ ifneq ($(wildcard $O/doc/*/*/*pdf),)
>         $(Q)$(call rte_mkdir,     $(DESTDIR)$(docdir)/guides)
>         $(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
>  endif
> +       $(Q)$(call rte_mkdir,         $(DESTDIR)$(datadir))
>         $(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir)
>
  
Christian Ehrhardt Jan. 18, 2016, 2:55 p.m. UTC | #2
Hi,

Since there was neither positive nor negative feedback so far I wanted to
ask if this patch is ok?
Especially since we had a discussion on the approach I chose in the first
approach to this issue I'd be happy about a ack/nak.

Kind Regards,
Christian


Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

On Fri, Jan 8, 2016 at 12:08 PM, Christian Ehrhardt <
christian.ehrhardt@canonical.com> wrote:

> Forgot to mention, an easy way to test-trigger this e.g. on the dpdk 2.2
> tarball.
>
> make clean; make config T=x86_64-native-linuxapp-gcc && && make -j && make
> V=1 DESTDIR=Test install-doc
>
> In this example the install-doc fails with this:
> [...]
> Build complete [x86_64-native-linuxapp-gcc]
> make -f /home/ubuntu/dpdk-2.2.0/mk/rte.sdkinstall.mk install-doc
> cp -a /home/ubuntu/dpdk-2.2.0/examples Test/usr/local/share/dpdk
> cp: cannot create directory ‘Test/usr/local/share/dpdk’: No such file or
> directory
> /home/ubuntu/dpdk-2.2.0/mk/rte.sdkinstall.mk:160: recipe for target
> 'install-doc' failed
> make[1]: *** [install-doc] Error 1
> /home/ubuntu/dpdk-2.2.0/mk/rte.sdkroot.mk:101: recipe for target
> 'install-doc' failed
> make: *** [install-doc] Error 2
>
> Christian Ehrhardt
> Software Engineer, Ubuntu Server
> Canonical Ltd
>
> On Fri, Jan 8, 2016 at 12:03 PM, Christian Ehrhardt <
> christian.ehrhardt@canonical.com> wrote:
>
>> Depending on non-doc targets being built before and the setting of DESTDIR
>> the copy of the examples dir being part of install-doc could in some
>> cases fail
>> with a non existant "$(DESTDIR)$(datadir)" target directory.
>> Add the conditional rte_mkdir for that to avoid the issue.
>>
>> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
>> ---
>>
>> [diffstat]
>>  rte.sdkinstall.mk |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> [diff]
>> diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
>> index c159bf7..68e56b6 100644
>> --- a/mk/rte.sdkinstall.mk
>> +++ b/mk/rte.sdkinstall.mk
>> @@ -157,4 +157,5 @@ ifneq ($(wildcard $O/doc/*/*/*pdf),)
>>         $(Q)$(call rte_mkdir,     $(DESTDIR)$(docdir)/guides)
>>         $(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
>>  endif
>> +       $(Q)$(call rte_mkdir,         $(DESTDIR)$(datadir))
>>         $(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir)
>>
>
>
  
Thomas Monjalon Jan. 19, 2016, 8:18 a.m. UTC | #3
2016-01-08 12:03, Christian Ehrhardt:
> Depending on non-doc targets being built before and the setting of DESTDIR
> the copy of the examples dir being part of install-doc could in some cases fail
> with a non existant "$(DESTDIR)$(datadir)" target directory.
> Add the conditional rte_mkdir for that to avoid the issue.
> 
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>

Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Applied, thanks
  

Patch

diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
index c159bf7..68e56b6 100644
--- a/mk/rte.sdkinstall.mk
+++ b/mk/rte.sdkinstall.mk
@@ -157,4 +157,5 @@  ifneq ($(wildcard $O/doc/*/*/*pdf),)
 	$(Q)$(call rte_mkdir,     $(DESTDIR)$(docdir)/guides)
 	$(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
 endif
+	$(Q)$(call rte_mkdir,         $(DESTDIR)$(datadir))
 	$(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir)