Hi Paul,

On 12/19/22 17:22, Paul Smith wrote:
On Mon, 2022-12-19 at 10:57 -0500, Jeffrey Walton wrote:
    ifeq ($(includedir),)
      includedir := $(prefix)/include
      PC_INCLUDEDIR = $${prefix}/include
    else
      PC_INCLUDEDIR = $(includedir)
    endif

Maybe I'm misunderstanding some subtlety here but why not just:

   includedir := $(prefix)/include
   PC_INCLUDEDIR = $(includedir)

??

An assignment of includedir on the command line will override any
setting in the makefile, so no need to use an ifeq etc.



On 12/19/22 17:23, Jeffrey Walton wrote:
> On Mon, Dec 19, 2022 at 11:22 AM Paul Smith <psm...@gnu.org> wrote:
>>
>> On Mon, 2022-12-19 at 10:57 -0500, Jeffrey Walton wrote:
>>>     ifeq ($(includedir),)
>>>       includedir := $(prefix)/include
>>>       PC_INCLUDEDIR = $${prefix}/include
>>>     else
>>>       PC_INCLUDEDIR = $(includedir)
>>>     endif
>>
>> Maybe I'm misunderstanding some subtlety here but why not just:
>>
>>    includedir := $(prefix)/include
>>    PC_INCLUDEDIR = $(includedir)
>
> For the *.pc file, we need '$(prefix)' to survive unexpanded.
>
> Jeff


Expanding on what Jeffrey said, pkgconf(1) allows setting the prefix (similar to what make does):

pkgconf(1):
       -‐define‐prefix
               Attempts to determine the prefix variable to use for CFLAGS and
               LIBS entry relocations.  This is mainly  useful  for  platforms
               where framework SDKs are relocatable, such as Windows.

So, to allow for that, you need to specify thing something like:

$ cat share/pkgconfig/libstp-uninstalled.pc
Name: libstp
Description: String library
URL: http://www.alejandro-colomar.es/src/alx/alx/libstp.git
Version: <version>
Requires:
Requires.private:

prefix=/usr/local
includedir=${prefix}/include
libdir=${prefix}/lib

Cflags: -isystem${includedir}
Libs: -L${libdir}/libstp -lstp -lc
Libs.private:


If includedir has been explicitly set in make, it makes sense to explicitly set it in the .pc file. However, if it's default (i.e., depending on prefix), it should be kept as such.

Cheers,

Alex

--
<http://www.alejandro-colomar.es/>

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to