summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/smb_build/env.pm16
-rw-r--r--source4/build/smb_build/main.pl2
-rw-r--r--source4/build/smb_build/makefile.pm48
-rw-r--r--source4/dynconfig.mk4
-rw-r--r--source4/lib/ldb/config.mk11
-rwxr-xr-xsource4/script/pkg-config1
-rwxr-xr-xsource4/script/tests/selftest.sh3
7 files changed, 55 insertions, 30 deletions
diff --git a/source4/build/smb_build/env.pm b/source4/build/smb_build/env.pm
index 8a34f40ad6..1466a8679c 100644
--- a/source4/build/smb_build/env.pm
+++ b/source4/build/smb_build/env.pm
@@ -53,9 +53,9 @@ sub _set_config($$)
$self->{automatic_deps} = ($self->{config}->{automatic_dependencies} eq "yes");
}
-sub PkgConfig($$$$$$$$$$)
+sub PkgConfig($$$$$$$$$$$)
{
- my ($self,$path,$name,$libs,$cflags,$version,$desc,$hasmodules,$pubdep,$privdep) = @_;
+ my ($self,$path,$name,$libs,$cflags,$version,$desc,$hasmodules,$pubdep,$privdep,$dirs) = @_;
print __FILE__.": creating $path\n";
@@ -66,13 +66,9 @@ sub PkgConfig($$$$$$$$$$)
mkpath(dirname($path),0,0755);
open(OUT, ">$path") or die("Can't open $path: $!");
- print OUT <<"__EOF__";
-prefix=$self->{config}->{prefix}
-exec_prefix=$self->{config}->{exec_prefix}
-libdir=$self->{config}->{libdir}
-includedir=$self->{config}->{includedir}
-__EOF__
-
+ foreach (keys %$dirs) {
+ print OUT "$_=" . $dirs->{$_} . "\n";
+ }
if ($hasmodules) {
print OUT "modulesdir=$self->{config}->{modulesdir}/$name\n" ;
}
@@ -86,7 +82,7 @@ __EOF__
print OUT "Requires: $pubdep\n" if defined($pubdep);
print OUT "Requires.private: $privdep\n" if defined($privdep);
print OUT "Version: $version\n";
- print OUT "Libs: -L\${libdir} $libs\n";
+ print OUT "Libs: $libs\n";
print OUT "Cflags: -I\${includedir} $cflags\n";
close(OUT);
diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl
index 7500a8c81b..841464d03b 100644
--- a/source4/build/smb_build/main.pl
+++ b/source4/build/smb_build/main.pl
@@ -53,7 +53,7 @@ foreach my $key (values %$OUTPUT) {
next unless defined $key->{OUTPUT_TYPE};
$mkenv->StaticLibrary($key) if grep(/STATIC_LIBRARY/, @{$key->{OUTPUT_TYPE}});
- $mkenv->PkgConfig($key) if $key->{TYPE} eq "LIBRARY"
+ $mkenv->PkgConfig($key, $OUTPUT) if $key->{TYPE} eq "LIBRARY"
and defined($key->{VERSION});
$mkenv->SharedLibrary($key) if grep(/SHARED_LIBRARY/, @{$key->{OUTPUT_TYPE}});
$mkenv->Binary($key) if grep(/BINARY/, @{$key->{OUTPUT_TYPE}});
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index d872f0189b..63bf3c0916 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -265,8 +265,7 @@ __EOD__
my $soarg = "";
my $soargdebug = "";
- if ($self->{config}->{SONAMEFLAG} ne "" and
- defined($ctx->{LIBRARY_SONAME})) {
+ if ($self->{config}->{SONAMEFLAG} ne "" and defined($ctx->{LIBRARY_SONAME})) {
$soarg = "$self->{config}->{SONAMEFLAG}$ctx->{LIBRARY_SONAME} ";
if ($ctx->{LIBRARY_REALNAME} ne $ctx->{LIBRARY_SONAME}) {
$soargdebug = "\n\t\@ln -fs $ctx->{LIBRARY_REALNAME} $ctx->{SHAREDDIR}/$ctx->{LIBRARY_SONAME}";
@@ -291,7 +290,7 @@ $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_
\$($ctx->{TYPE}_$ctx->{NAME}\_FULL_OBJ_LIST) \\
\$($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) $extraflags \\
$soarg \\
- $init_obj $singlesoarg
+ $init_obj $singlesoarg$soargdebug
__EOD__
);
@@ -395,9 +394,9 @@ sub Manpage($$)
push (@{$self->{manpages}}, "$dir/$ctx->{MANPAGE}");
}
-sub PkgConfig($$)
+sub PkgConfig($$$)
{
- my ($self,$ctx) = @_;
+ my ($self,$ctx,$other) = @_;
my $link_name = $ctx->{NAME};
@@ -415,30 +414,57 @@ sub PkgConfig($$)
if (defined($ctx->{PUBLIC_DEPENDENCIES})) {
foreach (@{$ctx->{PUBLIC_DEPENDENCIES}}) {
-# next unless ($self-> ) {
+ next unless ($other->{$_}->{TYPE} eq "LIBRARY");
-#FIXME $pubs .= "$_ ";
+ s/^LIB//g;
+ $_ = lc($_);
+
+ $pubs .= "$_ ";
}
}
if (defined($ctx->{PRIVATE_DEPENDENCIES})) {
foreach (@{$ctx->{PRIVATE_DEPENDENCIES}}) {
-# next unless ($self-> ) {
+ next unless ($other->{$_}->{TYPE} eq "LIBRARY");
+
+ s/^LIB//g;
+ $_ = lc($_);
-#FIXME $privs .= "$_ ";
+ $privs .= "$_ ";
}
}
smb_build::env::PkgConfig($self,
$path,
$link_name,
- "-l$link_name",
+ "-L\${libdir} -l$link_name",
"",
"$ctx->{VERSION}",
$ctx->{DESCRIPTION},
defined($ctx->{INIT_FUNCTIONS}),
$pubs,
- $privs
+ $privs,
+ {
+ "prefix" => $self->{config}->{prefix},
+ "exec_prefix" => $self->{config}->{exec_prefix},
+ "libdir" => $self->{config}->{libdir},
+ "includedir" => $self->{config}->{includedir}
+ }
+ );
+ smb_build::env::PkgConfig($self,
+ "bin/pkgconfig/$link_name-uninstalled.pc",
+ $link_name,
+ "-Lbin/shared -Lbin/static -l$link_name",
+ "-I. -Iinclude -Ilib -Ilib/replace",
+ "$ctx->{VERSION}",
+ $ctx->{DESCRIPTION},
+ defined($ctx->{INIT_FUNCTIONS}),
+ $pubs,
+ $privs,
+ {
+ "prefix" => "bin/",
+ "includedir" => "$ctx->{BASEDIR}"
+ }
);
}
diff --git a/source4/dynconfig.mk b/source4/dynconfig.mk
index 2172ca31d8..0bdea20f94 100644
--- a/source4/dynconfig.mk
+++ b/source4/dynconfig.mk
@@ -1,6 +1,4 @@
-[LIBRARY::DYNCONFIG]
-VERSION = 0.0.1
-SO_VERSION = 0
+[SUBSYSTEM::DYNCONFIG]
OBJ_FILES = dynconfig.o
PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \
diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk
index cd80adf721..655a121bb6 100644
--- a/source4/lib/ldb/config.mk
+++ b/source4/lib/ldb/config.mk
@@ -167,9 +167,10 @@ OBJ_FILES = \
common/ldb_controls.o \
common/qsort.o
PUBLIC_DEPENDENCIES = \
- LIBTALLOC \
+ LIBTALLOC
+PRIVATE_DEPENDENCIES = \
DYNCONFIG \
- SOCKET_WRAPPER
+ SOCKET_WRAPPER
MANPAGE = man/ldb.3
PUBLIC_HEADERS = include/ldb.h include/ldb_errors.h
#
@@ -181,7 +182,7 @@ PUBLIC_HEADERS = include/ldb.h include/ldb_errors.h
[SUBSYSTEM::LDBSAMBA]
PRIVATE_DEPENDENCIES = ldb
PRIVATE_PROTO_HEADER = samba/ldif_handlers.h
-PUBLIC_DEPENDENCIES = LIBSECURITY SAMDB
+PRIVATE_DEPENDENCIES = LIBSECURITY SAMDB
OBJ_FILES = \
samba/ldif_handlers.o
# End SUBSYSTEM LDBSAMBA
@@ -192,8 +193,8 @@ OBJ_FILES = \
[SUBSYSTEM::LIBLDB_CMDLINE]
OBJ_FILES= \
tools/cmdline.o
-PUBLIC_DEPENDENCIES = ldb LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS
-PRIVATE_DEPENDENCIES = gensec
+PUBLIC_DEPENDENCIES = ldb LIBPOPT
+PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL POPT_SAMBA POPT_CREDENTIALS gensec
# End SUBSYSTEM LIBLDB_CMDLINE
################################################
diff --git a/source4/script/pkg-config b/source4/script/pkg-config
index 434a696946..72a458b815 100755
--- a/source4/script/pkg-config
+++ b/source4/script/pkg-config
@@ -27,6 +27,7 @@ if ($opt_help) {
print "pkg-config replacement in perl\n";
print "Copyright (C) 2006 Jelmer Vernooij <jelmer\@samba.org>\n";
print "\n";
+ print "Usage: pkg-config [OPTIONS] PACKAGE...\n";
print " --help Print this help message\n";
print " --static Print flags for static libraries\n";
print " --libs Print linker flags\n";
diff --git a/source4/script/tests/selftest.sh b/source4/script/tests/selftest.sh
index a1483f48d6..89896a9c30 100755
--- a/source4/script/tests/selftest.sh
+++ b/source4/script/tests/selftest.sh
@@ -47,6 +47,9 @@ export LD_SAMBA_MODULE_PATH
LD_LIBRARY_PATH=$OLD_PWD/bin/shared:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
+PKG_CONFIG_PATH=$OLD_PWD/bin/pkgconfig:$PKG_CONFIG_PATH
+export PKG_CONFIG_PATH
+
incdir=`dirname $ARG0`
echo -n "PROVISIONING..."
. $incdir/mktestsetup.sh $PREFIX || exit 1