From b487ecdfad4518936cc542379b7f0102b38b3c62 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 20 Jan 2008 01:19:59 +0100 Subject: build: Fix handling of external pkg-config dependencies when generating pkg-config files. (This used to be commit 88f9e11286bf0f12fc766dbf21f311e5373f0811) --- source4/build/m4/public.m4 | 11 +++++++---- source4/build/smb_build/config_mk.pm | 3 +++ source4/build/smb_build/makefile.pm | 15 ++++++--------- 3 files changed, 16 insertions(+), 13 deletions(-) (limited to 'source4/build') diff --git a/source4/build/m4/public.m4 b/source4/build/m4/public.m4 index 9e82e6aaf1..6d693eaeee 100644 --- a/source4/build/m4/public.m4 +++ b/source4/build/m4/public.m4 @@ -8,7 +8,7 @@ dnl SMB_SUBSYSTEM(name,obj_files,required_subsystems) dnl dnl SMB_EXT_LIB_FROM_PKGCONFIG(name,pkg-config name,[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) dnl -dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags) +dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags,pcname) dnl dnl SMB_ENABLE(name,default_build) dnl @@ -34,7 +34,7 @@ ENABLE = YES " ]) -dnl SMB_LIBRARY(name,description,obj_files,required_subsystems,version,so_version,cflags,ldflags) +dnl SMB_LIBRARY(name,description,obj_files,required_subsystems,version,so_version,cflags,ldflags,pcname) AC_DEFUN([SMB_LIBRARY], [ SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES @@ -48,6 +48,7 @@ VERSION = $5 SO_VERSION = $6 CFLAGS = $7 LDFLAGS = $8 +PC_NAME = $9 ENABLE = YES # End Library $1 ################################### @@ -93,7 +94,8 @@ AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG], [`$PKG_CONFIG --libs-only-l '$2'`], [`$PKG_CONFIG --cflags-only-other '$2'`], [`$PKG_CONFIG --cflags-only-I '$2'`], - [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`]) + [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`], + [ $2 ]) ac_cv_$1_found=yes else @@ -125,7 +127,7 @@ include $1 " ]) -dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags) +dnl SMB_EXT_LIB(name,libs,cflags,cppflags,ldflags,pcname) AC_DEFUN([SMB_EXT_LIB], [ @@ -137,6 +139,7 @@ LIBS = $2 CFLAGS = $3 CPPFLAGS = $4 LDFLAGS = $5 +PC_NAME = $6 # End Ext Lib $1 ################################### " diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index 7ad6600a8c..2365ca19b2 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -18,6 +18,7 @@ my $section_types = { "CFLAGS" => "list", "CPPFLAGS" => "list", "LDFLAGS" => "list", + "PC_NAME" => "string", }, "PYTHON" => { SWIG_FILE => "string", @@ -87,6 +88,8 @@ my $section_types = { "VERSION" => "string", "SO_VERSION" => "string", "LIBRARY_REALNAME" => "string", + + "PC_NAME" => "string", "INIT_FUNCTION_TYPE" => "string", "INIT_FUNCTION_SENTINEL" => "string", diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index ce1e757c61..7e715b47eb 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -570,24 +570,21 @@ sub PkgConfig($$$) my $pubs; my $privs; my $privlibs; + my $publibs = ""; if (defined($ctx->{PUBLIC_DEPENDENCIES})) { foreach (@{$ctx->{PUBLIC_DEPENDENCIES}}) { next if ($other->{$_}->{ENABLE} eq "NO"); - if ($other->{$_}->{TYPE} eq "EXT_LIB") { + if (defined($other->{$_}->{PC_NAME})) { + $pubs .= "$other->{$_}->{PC_NAME} "; + } elsif ($other->{$_}->{TYPE} eq "EXT_LIB") { my $e = $other->{$_}; - my $ldflags = join(" ", @{$e->{LDFLAGS}}); $ldflags .= " " unless $ldflags eq ""; my $libs = join(" ", @{$e->{LIBS}}); $libs .= " " unless $libs eq ""; - $pubs .= $ldflags.$libs; - } elsif ($other->{$_}->{TYPE} eq "LIBRARY") { - s/^LIB//g; - $_ = lc($_); - - $pubs .= "$_ "; + $publibs .= $ldflags.$libs; } else { s/^LIB//g; $_ = lc($_); @@ -626,7 +623,7 @@ sub PkgConfig($$$) smb_build::env::PkgConfig($self, $path, $link_name, - "-L\${libdir} -l$link_name", + "-L\${libdir} -l$link_name $publibs", $privlibs, "", "$ctx->{VERSION}", -- cgit