]> err.no Git - dpkg/commitdiff
Ease cross-compilation by giving a default value to PKG_CONFIG_LIBDIR
authorRaphael Hertzog <hertzog@debian.org>
Fri, 28 Mar 2008 13:29:36 +0000 (14:29 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Sat, 29 Mar 2008 13:21:35 +0000 (14:21 +0100)
* scripts/dpkg-buildpackage.pl: If the user request a cross-compilation,
then define PKG_CONFIG_LIBDIR so that it will look in directories
specidic to the target architecture.
* man/dpkg-buildpackage.1: Document this change and also the -t option.

ChangeLog
debian/changelog
man/dpkg-buildpackage.1
scripts/dpkg-buildpackage.pl

index 23efe63369d6c55bcfdbdd47d94f9916c8f4f588..99c5124d2ef81855347a5508956be989c7df2ad0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-03-29  Raphael Hertzog  <hertzog@debian.org>
+
+       * scripts/dpkg-buildpackage.pl: If the user request a cross-compilation,
+       then define PKG_CONFIG_LIBDIR so that it will look in directories
+       specidic to the target architecture.
+       * man/dpkg-buildpackage.1: Document this change and also the -t option.
+
 2008-03-28  Raphael Hertzog  <hertzog@debian.org>
 
        * scripts/dpkg-buildpackage.pl: LDFLAGS now defaults to an empty
index 76c7d4fb70be8ac68fb76937bafbd54f26efae4c..cc0bad44ac3358948d89158533234ab210ecb4c8 100644 (file)
@@ -122,6 +122,9 @@ dpkg (1.14.17) UNRELEASED; urgency=low
   * Change default value of LDFLAGS (set by dpkg-buildpackage) to ''
     instead of '-Wl,-Bsymbolic-functions'. It's safer at this point of the
     release cycle.
+  * dpkg-buildpackage will set PKG_CONFIG_LIBDIR (but not override an existing
+    value) in case of cross-compilation so that pkgconfig finds .pc files
+    in the directory specific to the target architecture. Closes: #439979
 
   [ Frank Lichtenheld ]
   * Add a warning in dpkg-buildpackage if the build-dependencies are not
index f831d9ff52ff250b771838a94219d528f6083852..422d7e9849b1a63529e9cd8094dd98917dd2968e 100644 (file)
@@ -46,6 +46,17 @@ Forces the exclusion of the original source and includes only the diff.
 Specify the Debian architecture we build for. The architecture of the
 machine we build on is determined automatically, and is also the default
 for the host machine.
+
+If the host architecture differs from the build architecture (as is the
+case for a cross-compilation), and if the environment variable
+\fBPKG_CONFIG_LIBDIR\fP is not set, then it is set to a value suitable for
+cross-compilation
+("/usr/\fIgnu-system-type\fP/lib/pkgconfig/:/usr/share/pkgconfig").
+.TP
+.BI \-t gnu-system-type
+Specify the GNU system type we build for. It can be used in place
+of \-a or as a complement to override the default GNU system type
+of the target Debian architecture.
 .TP
 .BI \-j jobs
 Number of jobs allowed to be run simultaneously, equivalent to the
index d0141b46e76eff1610522955c0101f1b078382e5..1b3314014116a111504b62e189067fe318f070c2 100755 (executable)
@@ -14,6 +14,7 @@ use Dpkg::BuildOptions;
 use Dpkg::Compression;
 use Dpkg::Version qw(check_version);
 use Dpkg::Changelog qw(parse_changelog);
+use Dpkg::Arch qw(get_build_arch debarch_to_gnutriplet);
 
 textdomain("dpkg-dev");
 
@@ -308,6 +309,16 @@ while ($_ = <$arch_env>) {
 }
 close $arch_env or subprocerr('dpkg-architecture');
 
+# In case of cross-compilation, give sensible default search path
+# for some widely used tools
+$targetgnusystem = debarch_to_gnutriplet($targetarch) if $targetarch;
+if ($targetgnusystem and
+    ($targetgnusystem ne debarch_to_gnutriplet(get_build_arch())))
+{
+   $ENV{PKG_CONFIG_LIBDIR} ||= "/usr/$targetgnusystem/lib/pkgconfig/:" .
+                               "/usr/share/pkgconfig/";
+}
+
 my $arch;
 unless ($sourceonly) {
     $arch = mustsetvar($ENV{'DEB_HOST_ARCH'}, _g('host architecture'));