pkg-config v. -I/opt/local/include

Ryan Schmidt ryandesign at macports.org
Tue Jan 12 01:09:22 PST 2016


On Jan 11, 2016, at 9:03 AM, Craig Treleaven wrote:

> I’m having buiild failures due to includes pointing to old/other headers installed in /opt/local/include.
> 
> As I understand it, 'pig-config —cflags’ returns an empty string when a header is installed in /usr/include.  The port I’m working on, MythTV 0.28-pre, uses pkg-config to check for several dependencies.  Under MacPorts, I end up with '-I/opt/local/include’ early in the compiler arguments and thus picks up old or unintended versions of headers.  Under Linux, no problem.
> 
> Is there some way I can coerce pkg-config to treat /opt/local/include like it does /usr/include?  I’ve looked at the man page for pkg-config and tried using some of the environment variables but without success.
> 
> Eg, with MacPorts:
> $ pkg-config --cflags x264
> -I/opt/local/include                     ## want to make this disappear!
> 
> is there a magic recipe?

You should not want to make -I/opt/local/include disappear. It is where the headers of dependencies are installed, so it is needed. If it is causing problems, it is likely because your project's build system does not place the include flags in the correct order. The correct order is (relative) project include paths first, (absolute) dependency include paths second. If you cannot fix the build system to do that, you can use your sed trick to replace -I/opt/local/include with -isystem/opt/local/include which will have the same effect.



More information about the macports-dev mailing list