From 8ee1ee66edb1c98b63cbc26741080932995156a4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Oct 2005 14:18:27 +0000 Subject: r11303: Support defining and installing public headers for libraries. Support installing libraries. Get rid of pkg-config file (will be autogenerated later on). (This used to be commit b4745032a2c55752c527026feb221ccc3dce10c8) --- source4/build/smb_build/config_mk.pm | 3 ++- source4/build/smb_build/input.pm | 3 +++ source4/build/smb_build/makefile.pm | 41 ++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) (limited to 'source4/build/smb_build') diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index 91195974a7..2adc219605 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -76,7 +76,8 @@ my $section_types = { "NOPROTO" => "bool", "MANPAGE" => "string", - "INSTALLDIR" => "string", + + "PUBLIC_HEADERS" => "list" } }; diff --git a/source4/build/smb_build/input.pm b/source4/build/smb_build/input.pm index f656e78f88..e685f41157 100644 --- a/source4/build/smb_build/input.pm +++ b/source4/build/smb_build/input.pm @@ -83,6 +83,7 @@ sub check_module($$) if ($mod->{CHOSEN_BUILD} eq "SHARED") { $mod->{ENABLE} = "YES"; $mod->{OUTPUT_TYPE} = "SHARED_LIBRARY"; + $mod->{INSTALLDIR} = "LIBDIR/$mod->{SUBSYSTEM}"; push (@{$mod->{REQUIRED_SUBSYSTEMS}}, $mod->{SUBSYSTEM}); printf("Module: %s...shared\n",$mod->{NAME}); } elsif ($mod->{CHOSEN_BUILD} eq "STATIC") { @@ -107,6 +108,8 @@ sub check_library($$) } $lib->{OUTPUT_TYPE} = $library_output_type; + + $lib->{INSTALLDIR} = "LIBDIR"; } sub check_binary($$) diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 8db8a3c2cf..f1a6262586 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -47,6 +47,8 @@ sub new($$$$) $self->_prepare_dummy_MAKEDIR($CTX); $self->_prepare_manpages($CTX); $self->_prepare_binaries($CTX); + $self->_prepare_libraries($CTX); + $self->_prepare_headers($CTX); $self->_prepare_target_settings($CTX); $self->_prepare_rule_lists($CTX); $self->_prepare_clean_rules(); @@ -91,6 +93,7 @@ BINDIR = $self->{config}->{bindir} SBINDIR = $self->{config}->{sbindir} datadir = $self->{config}->{datadir} LIBDIR = $self->{config}->{libdir} +INCLUDEDIR = $self->{config}->{includedir} CONFIGDIR = $self->{config}->{configdir} localstatedir = $self->{config}->{localstatedir} SWATDIR = $self->{config}->{swatdir} @@ -209,6 +212,44 @@ Makefile: config.status $deps "); } +sub _prepare_headers($$) +{ + my ($self, $ctx) = @_; + + my @headers = (); + + foreach (values %$ctx) { + next unless defined $_->{PUBLIC_HEADERS}; + + foreach my $h (@{$_->{PUBLIC_HEADERS}}) { + push (@headers, "$_->{BASEDIR}/$h"); + } + } + + $self->output("PUBLIC_HEADERS = " . array2oneperline(\@headers) . "\n"); +} + +sub _prepare_libraries($$) +{ + my ($self, $ctx) = @_; + + my @shared_list = (); + my @static_list = (); + + foreach (values %$ctx) { + next unless defined $_->{OUTPUT_TYPE}; + next unless defined($_->{INSTALLDIR}); + next unless ($_->{INSTALLDIR} eq "LIBDIR"); + + push(@shared_list, $_->{OUTPUT}) if ($_->{OUTPUT_TYPE} eq "SHARED_LIBRARY"); + push(@static_list, $_->{OUTPUT}) if ($_->{OUTPUT_TYPE} eq "STATIC_LIBRARY"); + } + + $self->output("STATIC_LIBS = " . array2oneperline(\@static_list) . "\n"); + $self->output("SHARED_LIBS = " . array2oneperline(\@shared_list) . "\n"); + +} + sub _prepare_binaries($$) { my ($self, $ctx) = @_; -- cgit