[SUBSYSTEM::auth_sam]
PRIVATE_PROTO_HEADER = auth_sam.h
-OBJ_FILES = \
- sam.o \
- auth_sam_reply.o
-PUBLIC_DEPENDENCIES = \
- SAMDB
+OBJ_FILES = sam.o auth_sam_reply.o
+PUBLIC_DEPENDENCIES = SAMDB
#######################
# Start MODULE auth_sam
INIT_FUNCTION = auth_winbind_init
SUBSYSTEM = auth
OBJ_FILES = auth_winbind.o
-PUBLIC_DEPENDENCIES = \
- LIBWINBIND-CLIENT \
- NDR_NETLOGON LIBNDR
+PUBLIC_DEPENDENCIES = LIBWINBIND-CLIENT NDR_NETLOGON LIBNDR
# End MODULE auth_winbind
#######################
credentials_krb5.o \
credentials_ntlm.o
PUBLIC_DEPENDENCIES = \
- HEIMDAL LIBCLI_AUTH SECRETS
+ LIBCLI_AUTH SECRETS LIBCRYPTO HEIMDAL_GSSAPI
# End SUBSYSTEM CREDENTIALS
#################################
PUBLIC_PROTO_HEADER = gensec_proto.h
OBJ_FILES = gensec.o
PUBLIC_DEPENDENCIES = \
- CREDENTIALS LIBSAMBA-UTIL
+ CREDENTIALS LIBSAMBA-UTIL LIBCRYPTO
# End SUBSYSTEM gensec
#################################
dnl Checks for programs.
dnl Unique-to-Samba variables we'll be playing with.
-DYNEXP=
-
AC_SUBST(SHLIBEXT)
AC_SUBST(LDSHFLAGS)
AC_SUBST(SONAMEFLAG)
+AC_SUBST(DYNEXP)
AC_SUBST(PICFLAG)
AC_SYS_LARGEFILE
BLDSHARED="false"
# these are the defaults, good for lots of systems
+DYNEXP=
HOST_OS="$host_os"
LDSHFLAGS="-shared"
SONAMEFLAG=""
+- replace StrnCpy() with strlcpy()
+- Add --export-dynamic for each subsystem that has modules
- let the build system implement some make functions($(patsubst),$(wildcard),...) and use our own implementations where `make' does not support them
- include extra_flags.txt using Makefile construction if
supported by current make
-- change default subsystem/library build type to STATIC_LIBRARY
- - fix order of UNIQUE_DEPENDENCIES
- make --enable-dso the default
- fix module loading for selftest during non-developer builds
- clearer distinction between dcerpc and ndr. seperate interface tables?
my @defines = ();
my $output = "";
- foreach my $key (values %{$depend}) {
+ foreach my $key (values %$depend) {
my $DEFINE = ();
next if ($key->{TYPE} ne "LIBRARY" and
$key->{TYPE} ne "MODULE" and
if ($mod->{OUTPUT_TYPE} eq "SHARED_LIBRARY") {
$mod->{INSTALLDIR} = "MODULESDIR/$mod->{SUBSYSTEM}";
- push (@{$mod->{PRIVATE_DEPENDENCIES}}, $mod->{SUBSYSTEM}) unless
- $INPUT->{$mod->{SUBSYSTEM}}->{TYPE} eq "BINARY";
} else {
push (@{$INPUT->{$mod->{SUBSYSTEM}}{INIT_FUNCTIONS}}, $mod->{INIT_FUNCTION}) if defined($mod->{INIT_FUNCTION});
}
$bin->{OUTPUT_TYPE} = "BINARY";
}
-
sub import_integrated($$)
{
my ($lib, $depend) = @_;
foreach my $k (keys %$INPUT) {
my $part = $INPUT->{$k};
+ $part->{LINK_FLAGS} = [];
$part->{FULL_OBJ_LIST} = ["\$($part->{TYPE}_$part->{NAME}_OBJ_LIST)"];
check_subsystem($INPUT, $part, $subsys_ot) if ($part->{TYPE} eq "SUBSYSTEM");
}
foreach my $part (values %$INPUT) {
+ if (defined($part->{INIT_FUNCTIONS})) {
+ push (@{$part->{LINK_FLAGS}}, "\$(DYNEXP)");
+ }
import_integrated($part, $INPUT);
}
my $INPUT = {};
my $mkfile = smb_build::config_mk::run_config_mk($INPUT, $config::config{srcdir}, $config::config{builddir}, "main.mk");
-my $subsystem_output_type;
-
-if (defined($ENV{"SUBSYSTEM_OUTPUT_TYPE"})) {
- $subsystem_output_type = $ENV{SUBSYSTEM_OUTPUT_TYPE};
-} else {
- $subsystem_output_type = "STATIC_LIBRARY";
-}
-
my $library_output_type;
if (defined($ENV{"LIBRARY_OUTPUT_TYPE"})) {
$library_output_type = $ENV{LIBRARY_OUTPUT_TYPE};
}
my $DEPEND = smb_build::input::check($INPUT, \%config::enabled,
- $subsystem_output_type, $library_output_type, $module_output_type);
+ "STATIC_LIBRARY", $library_output_type, $module_output_type);
my $OUTPUT = output::create_output($DEPEND, \%config::config);
-$config::config{SUBSYSTEM_OUTPUT_TYPE} = $subsystem_output_type;
+$config::config{SUBSYSTEM_OUTPUT_TYPE} = "STATIC_LIBRARY";
$config::config{LIBRARY_OUTPUT_TYPE} = $library_output_type;
$config::config{MODULE_OUTPUT_TYPE} = $module_output_type;
my $mkenv = new smb_build::makefile(\%config::config, $mkfile);
SHLD=$self->{config}->{CC}
SHLD_FLAGS=$self->{config}->{LDSHFLAGS} $self->{config}->{LDFLAGS} -L\$(builddir)/bin
SHLIBEXT=$self->{config}->{SHLIBEXT}
+DYNEXP=$self->{config}->{DYNEXP}
XSLTPROC=$self->{config}->{XSLTPROC}
my $lib_name;
$lib->{DEPEND_LIST} = [];
- $lib->{LINK_FLAGS} = ["\$($lib->{TYPE}_$lib->{NAME}\_OBJ_LIST)"];
+ push(@{$lib->{LINK_FLAGS}}, "\$($lib->{TYPE}_$lib->{NAME}\_OBJ_LIST)");
$link_name = lc($lib->{NAME});
$lib_name = $link_name;
$link_name =~ s/^LIB//;
$lib->{LIBRARY_NAME} = "lib".lc($link_name).".a";
- $lib->{LINK_FLAGS} = ["\$($lib->{TYPE}_$lib->{NAME}\_OBJ_LIST)"];
+ push(@{$lib->{LINK_FLAGS}}, "\$($lib->{TYPE}_$lib->{NAME}\_OBJ_LIST)");
$lib->{TARGET} = "bin/$lib->{LIBRARY_NAME}";
$lib->{OUTPUT} = "-l".lc($link_name);
my $bin = shift;
$bin->{DEPEND_LIST} = [];
- $bin->{LINK_FLAGS} = ["\$($bin->{TYPE}_$bin->{NAME}\_OBJ_LIST)"];
+ push(@{$bin->{LINK_FLAGS}}, "\$($bin->{TYPE}_$bin->{NAME}\_OBJ_LIST)");
$bin->{RELEASEDIR} = "bin/install";
$bin->{DEBUGDIR} = "bin/";
SO_VERSION = 0
OBJ_FILES = gen_ndr/ndr_netlogon.o
PUBLIC_HEADERS = gen_ndr/netlogon.h
-PUBLIC_DEPENDENCIES = LIBNDR NDR_SAMR NDR_LSA
+PUBLIC_DEPENDENCIES = LIBNDR NDR_SAMR NDR_LSA NDR_SECURITY
[LIBRARY::NDR_TRKWKS]
VERSION = 0.0.1
rpc/dcerpc_sock.o \
rpc/dcerpc_connect.o
PUBLIC_DEPENDENCIES = \
- SOCKET LIBSMB \
+ SOCKET LIBSMB LIBCLI_SMB2 \
LIBNDR NDR_DCERPC \
RPC_NDR_EPMAPPER \
NDR_SCHANNEL RPC_NDR_NETLOGON \
- gensec
+ gensec LIBCLI_AUTH
# End SUBSYSTEM dcerpc
################################################
# SMB server subsystem
+#
+[MODULE::SERVICE_SMB]
+INIT_FUNCTION = server_service_smb_init
+SUBSYSTEM = service
+OBJ_FILES = smb_server.o
+PRIVATE_PROTO_HEADER = service_smb_proto.h
+PRIVATE_DEPENDENCIES = SMB_SERVER
#######################
# Start SUBSYSTEM SMB
-[MODULE::SMB_SERVER]
-INIT_FUNCTION = server_service_smb_init
-SUBSYSTEM = service
+[SUBSYSTEM::SMB_SERVER]
OBJ_FILES = \
- smb_server.o \
tcon.o \
session.o \
management.o
#include "smb_server/smb_server.h"
#include "libcli/smb2/smb2.h"
#include "smb_server/smb2/smb2_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smbd/service_stream.h"
#include "lib/stream/packet.h"
#include "system/time.h"
#include "smbd/service_stream.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "ntvfs/ntvfs.h"
#include "includes.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smbd/service_stream.h"
#include "lib/stream/packet.h"
#include "ntvfs/ntvfs.h"
#include "includes.h"
#include "libcli/smb2/smb2.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smb_server/smb2/smb2_server.h"
static NTSTATUS smb2srv_keepalive_backend(struct smb2srv_request *req)
#include "libcli/smb2/smb2.h"
#include "libcli/smb2/smb2_calls.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smb_server/smb2/smb2_server.h"
#include "smbd/service_stream.h"
#include "libcli/smb2/smb2.h"
#include "libcli/smb2/smb2_calls.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smb_server/smb2/smb2_server.h"
#include "lib/stream/packet.h"
#include "libcli/smb2/smb2.h"
#include "libcli/smb2/smb2_calls.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smb_server/smb2/smb2_server.h"
#include "smbd/service_stream.h"
#include "libcli/smb2/smb2.h"
#include "libcli/smb2/smb2_calls.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "smb_server/smb2/smb2_server.h"
static NTSTATUS smb2srv_tcon_backend(struct smb2srv_request *req, struct smb2_tree_connect *io)
#include "smbd/service_stream.h"
#include "smbd/service.h"
#include "smb_server/smb_server.h"
+#include "smb_server/service_smb_proto.h"
#include "lib/messaging/irpc.h"
#include "lib/stream/packet.h"
#include "libcli/smb2/smb2.h"