[meta-freescale] Fixing imx-vpu-hantro header installation

Carlos Rafael Giani dv at pseudoterminal.org
Fri Jul 27 07:01:02 PDT 2018

Currently, the headers from imx-vpu-hantro are installed in the 
${includedir} directory, which is /usr/include/ in Yocto.

This is bad, because there are multiple headers, and none of them have 
names that are distinguishable enough. There are headers called codec.h, 
version.h, util.h for example.

Placing multiple headers into /usr/include/ that belong to a specific 
library or package is not good. In the Unix world, it is generally 
considered good practice to place such headers in a subdirectory instead.

I would recommend doing that here as well. Let the imx-vpu-hantro recipe 
create a "hantro/" or "imx-vpu-hantro/" subdirectory in ${includedir}, 
and install the headers there. I realize that the imx-vpuwrap and 
imx-gst1.0-plugin recipes expect the headers to be in ${includedir}, but 
this can be circumvented by adding an include path command line flag to 
their CFLAGS. I think this is preferable over keeping these headers in 
the main include directory.

Also, the preprocessor definitions that the top level makefile selects 
are not specified in any header. Typically, such options are recorded in 
something like config.h so that code that uses the library can use 
#ifdef to make sure its code matches. For example, there is the 
USE_EXTERNAL_BUFFER macro, which is enabled in the toplevel makefile. 
This macro enables additional fields in several C structs, so knowing 
whether or not imx-vpu-hantro was build with this macro is important.

More information about the meta-freescale mailing list