From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0] ident=Debian-exim) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1XzNNC-0007B2-Lc for ptxdist@pengutronix.de; Fri, 12 Dec 2014 11:22:58 +0100 Received: from mol by ptx.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1XzNNC-0005JE-K6 for ptxdist@pengutronix.de; Fri, 12 Dec 2014 11:22:58 +0100 Date: Fri, 12 Dec 2014 11:22:58 +0100 From: Michael Olbrich Message-ID: <20141212102258.GH31594@pengutronix.de> References: <201412111146.47136.jbe@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [ptxdist] Hardcoded path in pkg-config file Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de Hi, On Thu, Dec 11, 2014 at 12:12:40PM +0100, Guillermo Rodriguez Garcia wrote: > 2014-12-11 11:46 GMT+01:00 Juergen Borleis : > > Hi Guillermo, > > > > On Wednesday 10 December 2014 17:14:06 Guillermo Rodriguez Garcia wrote: > >> I am trying to port a package to ptxdist (libzip). This package > >> creates a pkg-config .pc file that contains some hardcoded paths. > >> During the install stage, it looks like ptxdist already does some > >> magic to "fix" the hardcoded paths (where is this done?), however not > >> all paths are fixed. > >> > >> Here's the .pc file that gets copied to sysroot-target: > >> > >> prefix=${pcfiledir}/../.. > >> exec_prefix=${prefix} > >> libdir=${exec_prefix}/lib > >> includedir=${prefix}/include > >> libincludedir=/usr/lib/libzip/include > >> ^^^^^^^^^^^ > >> [...] > > > > What is the difference between 'includedir' and 'libincludedir'? > > What kind of files does the install stage install to these locations? > > Apparently these are just two locations for header files. Here's the > complete .pc.in file: Yes, some packages have (generated) headers that are platform specific. Those are installed separately to handle multiarch correctly. > === > prefix=@prefix@ > exec_prefix=@exec_prefix@ > libdir=@libdir@ > includedir=@includedir@ > libincludedir=@libdir@/@PACKAGE@/include Patch this to change this to: libincludedir=${libdir}/@PACKAGE@/include > zipcmp=@prefix@/bin/zipcmp > > Name: libzip > Description: library for handling zip archives > Version: @VERSION@ > Libs: -L${libdir} -lzip @LIBS@ > Cflags: -I${includedir} -I${libincludedir} > === > > This is probably not very common (they could have just used includedir > for all paths) but as far as I can see it is valid syntax. > > After some digging (the post-install processing does not seem to be > documented anywhere) I already found where ptxdist is patching these > files (ptxd_make_world_install_mangle_pc.awk), which was my original > question. Now the question is, should this awk script handle all paths > in the .pc file? Or only the "common cases" prefix / exec_prefix / > libdir / includedir? ptxd_make_world_install_mangle_pc.awk tries to do the right thing, but that only goes so far. We already have some other corner-cases where patching the pc file is necessary. Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de