mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
build: heimdal_build waf support
heimdal now mostly builds
This commit is contained in:
parent
bb1e36a86b
commit
07eeed33f6
@ -28,7 +28,7 @@ source4/cldap_server/config.mk
|
||||
source4/smb_server/config.mk
|
||||
source4/smb_server/smb2/config.mk
|
||||
source4/smb_server/smb/config.mk
|
||||
source4/smbd/config.mk
|
||||
source4/smbd/config.mk source4/smbd/process_model.mk
|
||||
source4/kdc/config.mk
|
||||
source4/dsdb/config.mk
|
||||
source4/dsdb/samdb/ldb_modules/config.mk
|
||||
|
@ -3,10 +3,10 @@
|
||||
use strict;
|
||||
use Data::Dumper;
|
||||
use File::Basename;
|
||||
use List::MoreUtils qw(uniq);
|
||||
|
||||
my $filename=$ARGV[0];
|
||||
my $dname=dirname($filename);
|
||||
my $globals;
|
||||
my $dname;
|
||||
|
||||
sub read_file($)
|
||||
{
|
||||
@ -46,7 +46,9 @@ sub strlist($)
|
||||
|
||||
# these need to use the library names
|
||||
$s =~ s/\bLIBLDB\b/ldb/g;
|
||||
$s =~ s/\bLDB\b/ldb/g;
|
||||
$s =~ s/\bLIBTALLOC\b/talloc/g;
|
||||
$s =~ s/\bTALLOC\b/talloc/g;
|
||||
$s =~ s/\bLIBTEVENT\b/tevent/g;
|
||||
$s =~ s/\bRESOLV\b/resolv/g;
|
||||
|
||||
@ -85,9 +87,9 @@ sub find_file($)
|
||||
return $b if (-e $b);
|
||||
|
||||
return $f if (-e $f);
|
||||
|
||||
while ($f =~ /\//) {
|
||||
$f =~ s/^[^\/]+\///g;
|
||||
#printf(STDERR "Trying $f in $dname\n");
|
||||
return $f if (-e $f);
|
||||
}
|
||||
my $f2;
|
||||
@ -120,7 +122,11 @@ sub find_files($)
|
||||
$f =~ s/^[.]\///;
|
||||
$ret .= ' ' . $f;
|
||||
}
|
||||
return strlist($ret);
|
||||
$ret = strlist($ret);
|
||||
my @list = split(/\s+/, $ret);
|
||||
@list = uniq(@list);
|
||||
$ret = trim(join(' ', @list));
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub read_config_mk($)
|
||||
@ -242,186 +248,195 @@ sub read_config_mk($)
|
||||
}
|
||||
|
||||
|
||||
my $result = read_config_mk($filename);
|
||||
sub process_results($)
|
||||
{
|
||||
my $result = shift;
|
||||
|
||||
#print Dumper $result;
|
||||
foreach my $s (sort {$result->{$a}->{SECNUMBER} <=> $result->{$b}->{SECNUMBER}} keys %{$result}) {
|
||||
next if ($s eq "GLOBAL");
|
||||
my $sec = $result->{$s};
|
||||
if ($sec->{TYPE} eq "SUBCONFIG") {
|
||||
my $d = dirname($s);
|
||||
next if ($d eq ".");
|
||||
printf "bld.BUILD_SUBDIR('%s')\n", dirname($s);
|
||||
} else {
|
||||
printf "\nbld.SAMBA_%s('%s'", $sec->{TYPE}, $s;
|
||||
my $trailer="";
|
||||
my $got_src = 0;
|
||||
|
||||
print "# AUTOGENERATED by mktowscript.pl\n# Please remove this notice if hand editing\n\n";
|
||||
foreach my $k (keys %{$sec}) {
|
||||
#print "key=$k\n";
|
||||
|
||||
chdir($dname);
|
||||
|
||||
foreach my $s (sort {$result->{$a}->{SECNUMBER} <=> $result->{$b}->{SECNUMBER}} keys %{$result}) {
|
||||
next if ($s eq "GLOBAL");
|
||||
my $sec = $result->{$s};
|
||||
if ($sec->{TYPE} eq "SUBCONFIG") {
|
||||
my $d = dirname($s);
|
||||
next if ($d eq ".");
|
||||
printf "bld.BUILD_SUBDIR('%s')\n", dirname($s);
|
||||
} else {
|
||||
printf "\nbld.SAMBA_%s('%s'", $sec->{TYPE}, $s;
|
||||
my $trailer="";
|
||||
my $got_src = 0;
|
||||
|
||||
foreach my $k (keys %{$sec}) {
|
||||
#print "key=$k\n";
|
||||
|
||||
next if ($k eq "SECNUMBER");
|
||||
next if ($k eq "TYPE");
|
||||
if ($k eq "INIT_FUNCTION") {
|
||||
$trailer .= sprintf(",\n\tinit_function='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "INIT_FUNCTION_SENTINEL") {
|
||||
$trailer .= sprintf(",\n\tinit_function_sentinal='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "_PY_FILES" ||
|
||||
$k eq "EPYDOC_OPTIONS" ||
|
||||
$k eq "COV_TARGET" ||
|
||||
$k eq "GCOV" ||
|
||||
$k eq "PC_FILES" ||
|
||||
$k eq "CONFIG4FILE" ||
|
||||
$k eq "LMHOSTSFILE4") {
|
||||
$trailer .= sprintf(",\n\t# %s='%s'", $k, trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "SUBSYSTEM") {
|
||||
$trailer .= sprintf(",\n\tsubsystem='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "PRIVATE_DEPENDENCIES") {
|
||||
$trailer .= sprintf(",\n\tdeps='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "PUBLIC_DEPENDENCIES") {
|
||||
$trailer .= sprintf(",\n\tpublic_deps='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ALIASES") {
|
||||
$trailer .= sprintf(",\n\taliases='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "CFLAGS") {
|
||||
$trailer .= sprintf(",\n\tcflags='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "OPTIONS") {
|
||||
$trailer .= sprintf(",\n\toptions='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "DIRECTORY") {
|
||||
$trailer .= sprintf(",\n\tdirectory='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "LDFLAGS") {
|
||||
$trailer .= sprintf(",\n\tldflags='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "INSTALLDIR") {
|
||||
$trailer .= sprintf(",\n\tinstalldir='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ASN1C") {
|
||||
$trailer .= sprintf(",\n\tcompiler='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ET_COMPILER") {
|
||||
$trailer .= sprintf(",\n\tcompiler='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ENABLE") {
|
||||
my $v = strlist($sec->{$k});
|
||||
if ($v eq "NO") {
|
||||
$trailer .= sprintf(",\n\tenabled=False");
|
||||
next;
|
||||
}
|
||||
next if ($v eq "YES");
|
||||
die("Unknown ENABLE value $v in $s\n");
|
||||
}
|
||||
if ($k eq "USE_HOSTCC") {
|
||||
my $v = strlist($sec->{$k});
|
||||
if ($v eq "YES") {
|
||||
$trailer .= sprintf(",\n\tuse_hostcc=True");
|
||||
next;
|
||||
}
|
||||
next if ($v eq "NO");
|
||||
die("Unknown HOST_CC value $v in $s\n");
|
||||
}
|
||||
if ($k eq "$s" . "_VERSION") {
|
||||
$trailer .= sprintf(",\n\tvnum='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "$s" . "_SOVERSION") {
|
||||
next;
|
||||
}
|
||||
if ($k eq "LIBRARY_REALNAME") {
|
||||
$trailer .= sprintf(",\n\trealname='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "OUTPUT_TYPE") {
|
||||
$trailer .= sprintf(",\n\toutput_type='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "AUTOPROTO") {
|
||||
my $list = trim(find_files(strlist($sec->{$k})));
|
||||
$trailer .= sprintf(",\n\tautoproto='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "PUBLIC_HEADERS") {
|
||||
my $list = trim(strlist($sec->{$k}));
|
||||
if ($list =~ /\$\(addprefix .*,(.*)\)(.*)$/) {
|
||||
$list = trim("$1 $2");
|
||||
$list = find_files($list);
|
||||
} else {
|
||||
$list = trim(find_files(strlist($sec->{$k})));
|
||||
}
|
||||
$trailer .= sprintf(",\n\tpublic_headers='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "MANPAGES") {
|
||||
my $list = trim(find_files(strlist($sec->{$k})));
|
||||
$trailer .= sprintf(",\n\tmanpages='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "$s" . "_OBJ_FILES") {
|
||||
my $list = trim(strlist($sec->{$k}));
|
||||
$list =~ s/\.o/.c/g;
|
||||
if ($list =~ /\$\(addprefix .*,(.*)\)(.*)$/) {
|
||||
$list = trim("$1 $2");
|
||||
$list = find_files($list);
|
||||
$list = "'$list'";
|
||||
} elsif ($list =~ /\$\(addprefix \$\((\w+)\)(.*),(.*)\)(.*)$/) {
|
||||
my $src = trim($3);
|
||||
my $dir = "$1$2";
|
||||
$dir =~ s/\/$//;
|
||||
my $res = "bld.SUBDIR('$dir', '$src')";
|
||||
if ($4) {
|
||||
$res = "$res + '$4'";
|
||||
}
|
||||
$list = $res;
|
||||
} else {
|
||||
$list = find_files($list);
|
||||
$list="'$list'";
|
||||
}
|
||||
$list =~ s/\$\(\w+srcdir\)\///g;
|
||||
printf(",\n\t%s", $list);
|
||||
$got_src = 1;
|
||||
next;
|
||||
}
|
||||
if ($k eq "HEIMDAL_GSSAPI_KRB5_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_GSSAPI_SPNEGO_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_HEIM_ASN1_DER_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_HX509_OBJH_FILES" ||
|
||||
$k eq "HEIMDAL_HX509_OBJG_FILES" ||
|
||||
$k eq "HEIMDAL_ROKEN_OBJ_FILES"
|
||||
) {
|
||||
next;
|
||||
}
|
||||
die("Unknown keyword $k in $s\n");
|
||||
}
|
||||
die("No source list in $s\n") unless $got_src;
|
||||
printf("%s\n\t)\n\n", $trailer);
|
||||
}
|
||||
next if ($k eq "SECNUMBER");
|
||||
next if ($k eq "TYPE");
|
||||
if ($k eq "INIT_FUNCTION") {
|
||||
$trailer .= sprintf(",\n\tinit_function='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "INIT_FUNCTION_SENTINEL") {
|
||||
$trailer .= sprintf(",\n\tinit_function_sentinal='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "_PY_FILES" ||
|
||||
$k eq "EPYDOC_OPTIONS" ||
|
||||
$k eq "COV_TARGET" ||
|
||||
$k eq "GCOV" ||
|
||||
$k eq "PC_FILES" ||
|
||||
$k eq "CONFIG4FILE" ||
|
||||
$k eq "LMHOSTSFILE4") {
|
||||
$trailer .= sprintf(",\n\t# %s='%s'", $k, trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "SUBSYSTEM") {
|
||||
$trailer .= sprintf(",\n\tsubsystem='%s'", trim($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "PRIVATE_DEPENDENCIES") {
|
||||
$trailer .= sprintf(",\n\tdeps='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "PUBLIC_DEPENDENCIES") {
|
||||
$trailer .= sprintf(",\n\tpublic_deps='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ALIASES") {
|
||||
$trailer .= sprintf(",\n\taliases='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "CFLAGS") {
|
||||
$trailer .= sprintf(",\n\tcflags='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "OPTIONS") {
|
||||
$trailer .= sprintf(",\n\toptions='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "DIRECTORY") {
|
||||
$trailer .= sprintf(",\n\tdirectory='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "LDFLAGS") {
|
||||
$trailer .= sprintf(",\n\tldflags='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "INSTALLDIR") {
|
||||
$trailer .= sprintf(",\n\tinstalldir='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ASN1C") {
|
||||
$trailer .= sprintf(",\n\tcompiler='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ET_COMPILER") {
|
||||
$trailer .= sprintf(",\n\tcompiler='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "ENABLE") {
|
||||
my $v = strlist($sec->{$k});
|
||||
if ($v eq "NO") {
|
||||
$trailer .= sprintf(",\n\tenabled=False");
|
||||
next;
|
||||
}
|
||||
next if ($v eq "YES");
|
||||
die("Unknown ENABLE value $v in $s\n");
|
||||
}
|
||||
if ($k eq "USE_HOSTCC") {
|
||||
my $v = strlist($sec->{$k});
|
||||
if ($v eq "YES") {
|
||||
$trailer .= sprintf(",\n\tuse_hostcc=True");
|
||||
next;
|
||||
}
|
||||
next if ($v eq "NO");
|
||||
die("Unknown HOST_CC value $v in $s\n");
|
||||
}
|
||||
if ($k eq "$s" . "_VERSION") {
|
||||
$trailer .= sprintf(",\n\tvnum='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "$s" . "_SOVERSION") {
|
||||
next;
|
||||
}
|
||||
if ($k eq "LIBRARY_REALNAME") {
|
||||
$trailer .= sprintf(",\n\trealname='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "OUTPUT_TYPE") {
|
||||
$trailer .= sprintf(",\n\toutput_type='%s'", strlist($sec->{$k}));
|
||||
next;
|
||||
}
|
||||
if ($k eq "AUTOPROTO") {
|
||||
my $list = trim(find_files(strlist($sec->{$k})));
|
||||
$trailer .= sprintf(",\n\tautoproto='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "PUBLIC_HEADERS") {
|
||||
my $list = trim(strlist($sec->{$k}));
|
||||
if ($list =~ /\$\(addprefix .*,(.*)\)(.*)$/) {
|
||||
$list = trim("$1 $2");
|
||||
$list = find_files($list);
|
||||
} else {
|
||||
$list = trim(find_files(strlist($sec->{$k})));
|
||||
}
|
||||
$trailer .= sprintf(",\n\tpublic_headers='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "MANPAGES") {
|
||||
my $list = trim(find_files(strlist($sec->{$k})));
|
||||
$trailer .= sprintf(",\n\tmanpages='%s'", $list);
|
||||
next;
|
||||
}
|
||||
if ($k eq "$s" . "_OBJ_FILES") {
|
||||
my $list = trim(strlist($sec->{$k}));
|
||||
$list =~ s/\.o/.c/g;
|
||||
$list =~ s/\.ho/.c/g;
|
||||
if ($list =~ /\$\(addprefix .*,(.*)\)(.*)$/) {
|
||||
$list = trim("$1 $2");
|
||||
$list = find_files($list);
|
||||
$list = "'$list'";
|
||||
} elsif ($list =~ /\$\(addprefix \$\((\w+)\)(.*),(.*)\)(.*)$/) {
|
||||
my $src = trim($3);
|
||||
my $dir = "$1$2";
|
||||
$dir =~ s/\/$//;
|
||||
my $res = "bld.SUBDIR('$dir', '$src')";
|
||||
if ($4) {
|
||||
$res = "$res + '$4'";
|
||||
}
|
||||
$list = $res;
|
||||
} else {
|
||||
$list = find_files($list);
|
||||
$list="'$list'";
|
||||
}
|
||||
$list =~ s/\$\(\w+srcdir\)\///g;
|
||||
printf(",\n\t%s", $list);
|
||||
$got_src = 1;
|
||||
next;
|
||||
}
|
||||
if ($k eq "HEIMDAL_GSSAPI_KRB5_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_GSSAPI_SPNEGO_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_HEIM_ASN1_DER_OBJ_FILES" ||
|
||||
$k eq "HEIMDAL_HX509_OBJH_FILES" ||
|
||||
$k eq "HEIMDAL_HX509_OBJG_FILES" ||
|
||||
$k eq "HEIMDAL_ROKEN_OBJ_FILES"
|
||||
) {
|
||||
next;
|
||||
}
|
||||
die("Unknown keyword $k in $s\n");
|
||||
}
|
||||
die("No source list in $s\n") unless $got_src;
|
||||
printf("%s\n\t)\n\n", $trailer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (my $i=0; $i <= $#ARGV; $i++) {
|
||||
my $filename=$ARGV[$i];
|
||||
$dname=dirname($filename);
|
||||
my $result = read_config_mk($filename);
|
||||
if ($i != 0) {
|
||||
print "\n\n\n";
|
||||
}
|
||||
print "# AUTOGENERATED by mktowscript.pl from $filename\n# Please remove this notice if hand editing\n\n";
|
||||
die("Unable to chdir to $dname\n") unless chdir($dname);
|
||||
process_results($result);
|
||||
}
|
||||
|
||||
#print Dumper $result;
|
||||
|
@ -1,21 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
cat mklist.txt |
|
||||
while read f; do
|
||||
echo "Processing $f"
|
||||
f="../../$f"
|
||||
test -f $f || {
|
||||
echo "$f doesn't exist"
|
||||
exit 1
|
||||
}
|
||||
ws="$(dirname $f)/wscript_build"
|
||||
if [ -f $ws ]; then
|
||||
if ! grep "AUTOGENERATED.by.mktowscript" $ws > /dev/null; then
|
||||
echo "Skipping manually edited file $ws"
|
||||
continue
|
||||
while read line; do
|
||||
ws=""
|
||||
list=""
|
||||
for f in $line; do
|
||||
echo "Processing $f"
|
||||
f="../../$f"
|
||||
test -f $f || {
|
||||
echo "$f doesn't exist"
|
||||
exit 1
|
||||
}
|
||||
ws="$(dirname $f)/wscript_build"
|
||||
if [ -f $ws ]; then
|
||||
if test -s $ws && ! grep "AUTOGENERATED.by.mktowscript" $ws > /dev/null; then
|
||||
echo "Skipping manually edited file $ws"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
list="$list $f"
|
||||
done
|
||||
if [ "$list" = "" ]; then
|
||||
continue
|
||||
fi
|
||||
./mktowscript.pl $f > wscript_build.$$ || {
|
||||
./mktowscript.pl $list > wscript_build.$$ || {
|
||||
echo "Failed on $f"
|
||||
rm -f wscript_build.$$
|
||||
exit 1
|
||||
|
2
buildtools/waf
vendored
2
buildtools/waf
vendored
@ -1 +1 @@
|
||||
waf-1.5.13-fixed
|
||||
waf-1.5.13
|
Binary file not shown.
@ -1,8 +1,9 @@
|
||||
# a waf tool to add autoconf-like macros to the configure section
|
||||
# and for SAMBA_ macros for building libraries, binaries etc
|
||||
|
||||
import Build, os, Logs, sys, Configure, Options
|
||||
import Build, os, Logs, sys, Configure, Options, string
|
||||
from Configure import conf
|
||||
from Logs import debug
|
||||
|
||||
LIB_PATH="shared"
|
||||
|
||||
@ -84,12 +85,12 @@ def CHECK_FUNCS_IN(conf, list, library, mandatory=False):
|
||||
conf.ASSERT(not mandatory,
|
||||
"Mandatory library '%s' not found for functions '%s'" % (library, list))
|
||||
# if it isn't a mandatory library, then remove it from dependency lists
|
||||
cache = LOCAL_CACHE(conf, 'EMPTY_LIBS')
|
||||
cache[library.upper()] = True
|
||||
LOCAL_CACHE_SET(conf, 'EMPTY_TARGETS', library.upper(), True)
|
||||
return
|
||||
for f in list.split():
|
||||
conf.check(function_name=f, lib=library, header_name=conf.env.hlist)
|
||||
conf.env['LIB_' + library.upper()] = library
|
||||
LOCAL_CACHE_SET(conf, 'TARGET_TYPE', library, 'SYSLIB')
|
||||
|
||||
|
||||
#################################################
|
||||
@ -132,7 +133,7 @@ def set_rpath(bld):
|
||||
else:
|
||||
bld.env['RPATH'] = []
|
||||
else:
|
||||
rpath = os.path.normpath('%s/bin/%s' % (bld.curdir, LIB_PATH))
|
||||
rpath = os.path.normpath('%s/%s' % (bld.env['BUILD_DIRECTORY'], LIB_PATH))
|
||||
bld.env.append_value('RPATH', '-Wl,-rpath=%s' % rpath)
|
||||
Build.BuildContext.set_rpath = set_rpath
|
||||
|
||||
@ -148,6 +149,38 @@ def LOCAL_CACHE(ctx, name):
|
||||
return ctx.env[name]
|
||||
|
||||
|
||||
#############################################################
|
||||
# set a value in a local cache
|
||||
@conf
|
||||
def LOCAL_CACHE_SET(ctx, cachename, key, value):
|
||||
cache = LOCAL_CACHE(ctx, cachename)
|
||||
cache[key] = value
|
||||
|
||||
#############################################################
|
||||
# set a value in a local cache
|
||||
# return False if it's already set
|
||||
def SET_TARGET_TYPE(ctx, target, value):
|
||||
cache = LOCAL_CACHE(ctx, 'TARGET_TYPE')
|
||||
if target in cache:
|
||||
ASSERT(ctx, cache[target] == value,
|
||||
"Target '%s' re-defined as %s - was %s" % (target, value, cache[target]))
|
||||
debug("task_gen: Skipping duplicate target %s (curdir=%s)" % (target, ctx.curdir))
|
||||
return False
|
||||
assumed = LOCAL_CACHE(ctx, 'ASSUMED_TARGET')
|
||||
if target in assumed:
|
||||
#if assumed[target] != value:
|
||||
# print "Target '%s' was assumed of type '%s' but is '%s'" % (target, assumed[target], value)
|
||||
ASSERT(ctx, assumed[target] == value,
|
||||
"Target '%s' was assumed of type '%s' but is '%s'" % (target, assumed[target], value))
|
||||
predeclared = LOCAL_CACHE(ctx, 'PREDECLARED_TARGET')
|
||||
if target in predeclared:
|
||||
ASSERT(ctx, predeclared[target] == value,
|
||||
"Target '%s' was predeclared of type '%s' but is '%s'" % (target, predeclared[target], value))
|
||||
LOCAL_CACHE_SET(ctx, 'TARGET_TYPE', target, value)
|
||||
debug("task_gen: Target '%s' created of type '%s' in %s" % (target, value, ctx.curdir))
|
||||
return True
|
||||
|
||||
|
||||
#############################################################
|
||||
# a build assert call
|
||||
@conf
|
||||
@ -171,6 +204,7 @@ Build.BuildContext.SUBDIR = SUBDIR
|
||||
@conf
|
||||
def SAMBA_BUILD_ENV(conf):
|
||||
libpath="%s/%s" % (conf.blddir, LIB_PATH)
|
||||
conf.env['BUILD_DIRECTORY'] = conf.blddir
|
||||
if not os.path.exists(libpath):
|
||||
os.mkdir(libpath)
|
||||
|
||||
@ -216,13 +250,43 @@ def FULL_DEPENDENCIES(bld, cache, target, chain, path):
|
||||
# check our build dependencies for circular dependencies
|
||||
def CHECK_TARGET_DEPENDENCY(bld, target):
|
||||
cache = LOCAL_CACHE(bld, 'LIB_DEPS')
|
||||
FULL_DEPENDENCIES(bld, cache, target, { target:True }, target)
|
||||
return FULL_DEPENDENCIES(bld, cache, target, { target:True }, target)
|
||||
|
||||
############################################################
|
||||
# check that all dependencies have been declared
|
||||
def CHECK_DEPENDENCIES(bld):
|
||||
cache = LOCAL_CACHE(bld, 'LIB_DEPS')
|
||||
target_cache = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
debug('deps: Checking dependencies')
|
||||
for t in cache:
|
||||
deps = CHECK_TARGET_DEPENDENCY(bld, t)
|
||||
for d in deps:
|
||||
#if not d in target_cache:
|
||||
# print "Dependency '%s' of target '%s' not declared" % (d, t)
|
||||
ASSERT(bld, d in target_cache,
|
||||
"Dependency '%s' of target '%s' not declared" % (d, t))
|
||||
debug("deps: Dependencies checked for %u targets" % len(target_cache))
|
||||
Build.BuildContext.CHECK_DEPENDENCIES = CHECK_DEPENDENCIES
|
||||
|
||||
|
||||
############################################################
|
||||
# pre-declare a target as being of a particular type
|
||||
def PREDECLARE(bld, target, type):
|
||||
cache = LOCAL_CACHE(bld, 'PREDECLARED_TARGET')
|
||||
target_cache = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
ASSERT(bld, not target in target_cache, "Target '%s' is already declared" % target)
|
||||
ASSERT(bld, not target in cache, "Target '%s' already predeclared" % target)
|
||||
cache[target] = type
|
||||
Build.BuildContext.PREDECLARE = PREDECLARE
|
||||
|
||||
|
||||
|
||||
################################################################
|
||||
# add to the dependency list. Return a new dependency list with
|
||||
# any circular dependencies removed
|
||||
# returns a tuple containing (systemdeps, localdeps)
|
||||
def ADD_DEPENDENCIES(bld, name, deps):
|
||||
debug('deps: Calculating dependencies for %s' % name)
|
||||
cache = LOCAL_CACHE(bld, 'LIB_DEPS')
|
||||
if not name in cache:
|
||||
cache[name] = {}
|
||||
@ -234,24 +298,49 @@ def ADD_DEPENDENCIES(bld, name, deps):
|
||||
CHECK_TARGET_DEPENDENCY(bld, name)
|
||||
list2.append(d)
|
||||
except AssertionError:
|
||||
print "Removing dependency %s from target %s" % (d, name)
|
||||
debug("deps: Removing dependency %s from target %s" % (d, name))
|
||||
del(cache[name][d])
|
||||
|
||||
# extract out the system dependencies
|
||||
sysdeps = []
|
||||
localdeps = []
|
||||
cache = LOCAL_CACHE(bld, 'EMPTY_LIBS')
|
||||
add_objects = []
|
||||
cache = LOCAL_CACHE(bld, 'EMPTY_TARGETS')
|
||||
target_cache = LOCAL_CACHE(bld, 'TARGET_TYPE')
|
||||
predeclare = LOCAL_CACHE(bld, 'PREDECLARED_TARGET')
|
||||
for d in list2:
|
||||
# strip out any dependencies on empty libraries
|
||||
if d in cache:
|
||||
print "Removing dependence of '%s' on empty library '%s'" % (name, d)
|
||||
debug("deps: Removing empty dependency '%s' from '%s'" % (d, name))
|
||||
continue
|
||||
libname = 'LIB_%s' % d.upper()
|
||||
if libname in bld.env:
|
||||
sysdeps.append(d)
|
||||
type = None
|
||||
|
||||
if d in target_cache:
|
||||
type = target_cache[d]
|
||||
elif d in predeclare:
|
||||
type = predeclare[d]
|
||||
else:
|
||||
type = 'SUBSYSTEM'
|
||||
LOCAL_CACHE_SET(bld, 'ASSUMED_TARGET', d, type)
|
||||
|
||||
if type == 'SYSLIB':
|
||||
sysdeps.append(d)
|
||||
elif type == 'LIBRARY':
|
||||
localdeps.append(d)
|
||||
return (' '.join(sysdeps), ' '.join(localdeps))
|
||||
elif type == 'SUBSYSTEM':
|
||||
add_objects.append(d)
|
||||
elif type == 'MODULE':
|
||||
add_objects.append(d)
|
||||
elif type == 'PYTHON':
|
||||
pass
|
||||
elif type == 'ASN1':
|
||||
pass
|
||||
else:
|
||||
ASSERT(bld, False, "Unknown target type '%s' for dependency %s" % (
|
||||
type, d))
|
||||
debug('deps: Dependencies for %s: sysdeps: %u localdeps: %u add_objects=%u' % (
|
||||
name, len(sysdeps), len(localdeps), len(add_objects)))
|
||||
return (' '.join(sysdeps), ' '.join(localdeps), ' '.join(add_objects))
|
||||
|
||||
|
||||
#################################################################
|
||||
@ -275,18 +364,15 @@ def SAMBA_LIBRARY(bld, libname, source_list,
|
||||
vnum=None,
|
||||
cflags=None,
|
||||
autoproto=None):
|
||||
# print "Declaring SAMBA_LIBRARY %s" % libname
|
||||
#print "SAMBA_LIBRARY '%s' with deps '%s'" % (libname, deps)
|
||||
if not SET_TARGET_TYPE(bld, libname, 'LIBRARY'):
|
||||
return
|
||||
|
||||
# remember empty libraries, so we can strip the dependencies
|
||||
if (source_list == '') or (source_list == []):
|
||||
cache = LOCAL_CACHE(bld, 'EMPTY_LIBS')
|
||||
cache[libname] = True
|
||||
LOCAL_CACHE_SET(bld, 'EMPTY_TARGETS', libname, True)
|
||||
return
|
||||
|
||||
(sysdeps, localdeps) = ADD_DEPENDENCIES(bld, libname, deps)
|
||||
|
||||
#print "SAMBA_LIBRARY: sysdeps='%s' deps='%s'" % (sysdeps, deps)
|
||||
(sysdeps, localdeps, add_objects) = ADD_DEPENDENCIES(bld, libname, deps)
|
||||
|
||||
ilist = bld.SAMBA_LIBRARY_INCLUDE_LIST(deps) + bld.SUBDIR(bld.curdir, include_list)
|
||||
ilist = bld.NORMPATH(ilist)
|
||||
@ -296,7 +382,8 @@ def SAMBA_LIBRARY(bld, libname, source_list,
|
||||
target=libname,
|
||||
uselib_local = localdeps,
|
||||
uselib = sysdeps,
|
||||
includes='. ' + os.environ.get('PWD') + '/bin/default ' + ilist,
|
||||
add_objects = add_objects,
|
||||
includes='. ' + bld.env['BUILD_DIRECTORY'] + '/default ' + ilist,
|
||||
vnum=vnum)
|
||||
|
||||
# put a link to the library in bin/shared
|
||||
@ -305,13 +392,12 @@ def SAMBA_LIBRARY(bld, libname, source_list,
|
||||
soext = '.' + vnum.split('.')[0]
|
||||
bld(
|
||||
source = 'lib%s.so' % libname,
|
||||
target = '%s.lnk' % libname,
|
||||
rule = 'ln -sf ../${SRC}%s %s/lib%s.so%s && touch ${TGT}' %
|
||||
rule = 'ln -sf ../${SRC}%s %s/lib%s.so%s' %
|
||||
(soext, LIB_PATH, libname, soext),
|
||||
shell = True
|
||||
shell = True,
|
||||
after = 'cc_link',
|
||||
)
|
||||
cache = LOCAL_CACHE(bld, 'INCLUDE_LIST')
|
||||
cache[libname] = ilist
|
||||
LOCAL_CACHE_SET(bld, 'INCLUDE_LIST', libname, ilist)
|
||||
|
||||
Build.BuildContext.SAMBA_LIBRARY = SAMBA_LIBRARY
|
||||
|
||||
@ -330,15 +416,14 @@ def SAMBA_BINARY(bld, binname, source_list,
|
||||
use_hostcc=None,
|
||||
compiler=None,
|
||||
manpages=None):
|
||||
ilist = '. ' + os.environ.get('PWD') + '/bin/default ' + bld.SAMBA_LIBRARY_INCLUDE_LIST(deps) + ' ' + include_list
|
||||
ilist = '. ' + bld.env['BUILD_DIRECTORY'] + '/default ' + bld.SAMBA_LIBRARY_INCLUDE_LIST(deps) + ' ' + include_list
|
||||
ilist = bld.NORMPATH(ilist)
|
||||
ccflags = ''
|
||||
|
||||
#print "SAMBA_BINARY '%s' with deps '%s'" % (binname, deps)
|
||||
if not SET_TARGET_TYPE(bld, binname, 'BINARY'):
|
||||
return
|
||||
|
||||
(sysdeps, localdeps) = ADD_DEPENDENCIES(bld, binname, deps)
|
||||
|
||||
#print "SAMBA_BINARY: sysdeps='%s' deps='%s'" % (sysdeps, deps)
|
||||
(sysdeps, localdeps, add_objects) = ADD_DEPENDENCIES(bld, binname, deps)
|
||||
|
||||
cache = LOCAL_CACHE(bld, 'INIT_FUNCTIONS')
|
||||
if modules is not None:
|
||||
@ -355,12 +440,16 @@ def SAMBA_BINARY(bld, binname, source_list,
|
||||
uselib = sysdeps,
|
||||
includes = ilist,
|
||||
ccflags = ccflags,
|
||||
add_objects = add_objects,
|
||||
top=True)
|
||||
# put a link to the binary in bin/
|
||||
bld(
|
||||
source = binname,
|
||||
rule = 'ln -sf ${SRC} .',
|
||||
)
|
||||
if not Options.is_install:
|
||||
bld(
|
||||
source = binname,
|
||||
rule = 'rm -f %s && cp ${SRC} .' % (binname),
|
||||
shell = True,
|
||||
after = 'cc_link'
|
||||
)
|
||||
Build.BuildContext.SAMBA_BINARY = SAMBA_BINARY
|
||||
|
||||
|
||||
@ -371,34 +460,53 @@ def SAMBA_PYTHON(bld, name, source_list,
|
||||
public_deps='',
|
||||
realname=''):
|
||||
|
||||
#print "SAMBA_PYTHON '%s' with deps '%s'" % (name, deps)
|
||||
if not SET_TARGET_TYPE(bld, name, 'PYTHON'):
|
||||
return
|
||||
|
||||
(sysdeps, localdeps) = ADD_DEPENDENCIES(bld, name, deps)
|
||||
(sysdeps, localdeps, add_objects) = ADD_DEPENDENCIES(bld, name, deps)
|
||||
|
||||
#Logs.debug('runner: PYTHON_SAMBA not implemented')
|
||||
return
|
||||
Build.BuildContext.SAMBA_PYTHON = SAMBA_PYTHON
|
||||
|
||||
|
||||
###################################################################
|
||||
# declare the ASN1 build pattern
|
||||
@runonce
|
||||
def SAMBA_ASN1_PATTERN(bld):
|
||||
bld(
|
||||
name = 'asn1_compile',
|
||||
rule = 'echo ASN1_COMPILE ${SRC} > {$TGT}',
|
||||
shall = True,
|
||||
ext_in = '.asn1',
|
||||
ext_out = '.c',
|
||||
reentrant = True,
|
||||
install = False)
|
||||
|
||||
|
||||
#################################################################
|
||||
# define a Samba ASN1 target
|
||||
def SAMBA_ASN1(bld, name, source,
|
||||
options='',
|
||||
directory=''):
|
||||
import string
|
||||
|
||||
if not SET_TARGET_TYPE(bld, name, 'ASN1'):
|
||||
return
|
||||
|
||||
cfile = string.replace(source, '.asn1', '.c')
|
||||
bld(
|
||||
source = source,
|
||||
target = cfile,
|
||||
rule = 'echo ASN1_COMPILE ${SRC} > {$TGT}',
|
||||
uselib = '',
|
||||
name = name)
|
||||
|
||||
# declare the pattern rule
|
||||
SAMBA_ASN1_PATTERN(bld)
|
||||
|
||||
bld(source=source)
|
||||
|
||||
bld(
|
||||
features = 'cc cshlib',
|
||||
source = cfile,
|
||||
target = name,
|
||||
uselib = '',
|
||||
after = name)
|
||||
after = 'asn1_compile'
|
||||
)
|
||||
Build.BuildContext.SAMBA_ASN1 = SAMBA_ASN1
|
||||
|
||||
|
||||
@ -407,6 +515,8 @@ Build.BuildContext.SAMBA_ASN1 = SAMBA_ASN1
|
||||
def SAMBA_ERRTABLE(bld, name, source,
|
||||
directory=''):
|
||||
import string
|
||||
if not SET_TARGET_TYPE(bld, name, 'ERRTABLE'):
|
||||
return
|
||||
cfile = string.replace(source, '.et', '.c')
|
||||
bld(
|
||||
source = source,
|
||||
@ -418,6 +528,34 @@ def SAMBA_ERRTABLE(bld, name, source,
|
||||
Build.BuildContext.SAMBA_ERRTABLE = SAMBA_ERRTABLE
|
||||
|
||||
|
||||
#################################################################
|
||||
# define a PIDL target
|
||||
def SAMBA_PIDL(bld, directory, source):
|
||||
pidl = "../../pidl/pidl"
|
||||
idl_dir = os.path.dirname(source)
|
||||
base = os.path.basename(string.replace(source, '.idl', ''))
|
||||
rule = "pidl --outputdir %s --header --ndr-parser --server --client --python --dcom-proxy --com-header --includedir %s -- %s" % (directory, idl_dir, source)
|
||||
output = '%s/ndr_%s.c' % (directory, base)
|
||||
tname = 'PIDL_%s' % base.upper()
|
||||
bld(
|
||||
rule = rule,
|
||||
source = source,
|
||||
target = output,
|
||||
name = 'pidl_compile'
|
||||
)
|
||||
|
||||
Build.BuildContext.SAMBA_PIDL = SAMBA_PIDL
|
||||
|
||||
|
||||
|
||||
#################################################################
|
||||
# define a set of Samba PIDL targets
|
||||
def SAMBA_PIDL_LIST(bld, directory, source_list):
|
||||
for p in source_list.split():
|
||||
bld.SAMBA_PIDL(directory, p)
|
||||
Build.BuildContext.SAMBA_PIDL_LIST = SAMBA_PIDL_LIST
|
||||
|
||||
|
||||
################################################################
|
||||
# build a C prototype file automatically
|
||||
def AUTOPROTO(bld, header, source_list):
|
||||
@ -441,13 +579,31 @@ def SAMBA_MODULE(bld, modname, source_list,
|
||||
aliases=None,
|
||||
cflags=None,
|
||||
output_type=None):
|
||||
#print "SAMBA_MODULE '%s' with deps '%s'" % (modname, deps)
|
||||
bld.ADD_INIT_FUNCTION(subsystem, init_function)
|
||||
bld.AUTOPROTO(autoproto, source_list)
|
||||
bld.SAMBA_LIBRARY(modname, source_list,
|
||||
deps=deps, include_list=include_list)
|
||||
|
||||
if not SET_TARGET_TYPE(bld, modname, 'MODULE'):
|
||||
return
|
||||
|
||||
# remember empty modules, so we can strip the dependencies
|
||||
if (source_list == '') or (source_list == []):
|
||||
LOCAL_CACHE_SET(bld, 'EMPTY_TARGETS', modname, True)
|
||||
return
|
||||
|
||||
(sysdeps, localdeps, add_objects) = ADD_DEPENDENCIES(bld, modname, deps)
|
||||
|
||||
ilist = bld.SAMBA_LIBRARY_INCLUDE_LIST(deps) + bld.SUBDIR(bld.curdir, include_list)
|
||||
ilist = bld.NORMPATH(ilist)
|
||||
bld(
|
||||
features = 'cc',
|
||||
source = source_list,
|
||||
target=modname,
|
||||
# we don't supply dependencies here, as this is just a compile, not a link
|
||||
# uselib_local = localdeps,
|
||||
# uselib = sysdeps,
|
||||
# add_objects = add_objects,
|
||||
includes='. ' + bld.env['BUILD_DIRECTORY'] + '/default ' + ilist)
|
||||
Build.BuildContext.SAMBA_MODULE = SAMBA_MODULE
|
||||
|
||||
|
||||
#################################################################
|
||||
# define a Samba subsystem
|
||||
def SAMBA_SUBSYSTEM(bld, modname, source_list,
|
||||
@ -458,8 +614,28 @@ def SAMBA_SUBSYSTEM(bld, modname, source_list,
|
||||
autoproto=None,
|
||||
cflags=None,
|
||||
init_function_sentinal=None):
|
||||
bld.SAMBA_LIBRARY(modname, source_list,
|
||||
deps=deps, include_list=include_list)
|
||||
|
||||
if not SET_TARGET_TYPE(bld, modname, 'SUBSYSTEM'):
|
||||
return
|
||||
|
||||
# remember empty subsystems, so we can strip the dependencies
|
||||
if (source_list == '') or (source_list == []):
|
||||
LOCAL_CACHE_SET(bld, 'EMPTY_TARGETS', modname, True)
|
||||
return
|
||||
|
||||
(sysdeps, localdeps, add_objects) = ADD_DEPENDENCIES(bld, modname, deps)
|
||||
|
||||
ilist = bld.SAMBA_LIBRARY_INCLUDE_LIST(deps) + bld.SUBDIR(bld.curdir, include_list)
|
||||
ilist = bld.NORMPATH(ilist)
|
||||
bld(
|
||||
features = 'cc',
|
||||
source = source_list,
|
||||
target=modname,
|
||||
# we don't supply dependencies here, as this is just a compile, not a link
|
||||
# uselib_local = localdeps,
|
||||
# uselib = sysdeps,
|
||||
# add_objects = add_objects,
|
||||
includes='. ' + bld.env['BUILD_DIRECTORY'] + '/default ' + ilist)
|
||||
Build.BuildContext.SAMBA_SUBSYSTEM = SAMBA_SUBSYSTEM
|
||||
|
||||
|
||||
@ -467,9 +643,14 @@ Build.BuildContext.SAMBA_SUBSYSTEM = SAMBA_SUBSYSTEM
|
||||
# add a new set of build rules from a subdirectory
|
||||
# the @runonce decorator ensures we don't end up
|
||||
# with duplicate rules
|
||||
@runonce
|
||||
def BUILD_SUBDIR(bld, dir):
|
||||
path = os.path.normpath(bld.curdir + '/' + dir)
|
||||
cache = LOCAL_CACHE(bld, 'SUBDIR_LIST')
|
||||
if path in cache: return
|
||||
cache[path] = True
|
||||
debug("build: Processing subdirectory %s" % dir)
|
||||
bld.add_subdirs(dir)
|
||||
|
||||
Build.BuildContext.BUILD_SUBDIR = BUILD_SUBDIR
|
||||
|
||||
|
||||
@ -482,7 +663,7 @@ def exec_command(self, cmd, **kw):
|
||||
_cmd = cmd
|
||||
if isinstance(cmd, list):
|
||||
_cmd = ' '.join(cmd)
|
||||
Logs.debug('runner: %s' % _cmd)
|
||||
debug('runner: %s' % _cmd)
|
||||
if self.log:
|
||||
self.log.write('%s\n' % cmd)
|
||||
kw['log'] = self.log
|
||||
@ -495,3 +676,25 @@ def exec_command(self, cmd, **kw):
|
||||
Build.BuildContext.exec_command = exec_command
|
||||
|
||||
|
||||
###########################################################
|
||||
# list the build targets
|
||||
def cmd_list(ctx):
|
||||
'''List the build targets'''
|
||||
import Utils, Environment
|
||||
proj = Environment.Environment(Options.lockfile)
|
||||
bld_cls = getattr(Utils.g_module, 'build_context', Utils.Context)
|
||||
bld = bld_cls()
|
||||
bld.load_dirs(proj['srcdir'], proj['blddir'])
|
||||
bld.load_envs()
|
||||
targets = bld.env['TARGET_TYPE']
|
||||
for t in targets:
|
||||
print "Target %20s of type %s" % (t, targets[t])
|
||||
|
||||
|
||||
###########################################################
|
||||
# add some extra top level targets
|
||||
@runonce
|
||||
def add_extra_targets():
|
||||
import Utils
|
||||
setattr(Utils.g_module, 'list', cmd_list)
|
||||
|
||||
|
52
source4/dsdb/wscript_build
Normal file
52
source4/dsdb/wscript_build
Normal file
@ -0,0 +1,52 @@
|
||||
# AUTOGENERATED by mktowscript.pl from ../../source4/dsdb/config.mk
|
||||
# Please remove this notice if hand editing
|
||||
|
||||
bld.BUILD_SUBDIR('samdb/ldb_modules')
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('SAMDB',
|
||||
'samdb/samdb.c samdb/samdb_privilege.c samdb/cracknames.c repl/replicated_objects.c',
|
||||
autoproto='samdb/samdb_proto.h',
|
||||
public_deps='HEIMDAL_KRB5',
|
||||
deps='LIBNDR NDR_DRSUAPI NDR_DRSBLOBS NSS_WRAPPER auth_system_session LIBCLI_AUTH LIBNDR SAMDB_SCHEMA LDB_WRAP SAMDB_COMMON LIBCLI_DRSUAPI LIBCLI_LDAP_NDR LIBSAMBA-UTIL'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('SAMDB_COMMON',
|
||||
'samdb/ldb_modules/util.c ./common/util.c common/dsdb_dn.c ./common/tests/dsdb_dn.c ../../libds/common/flag_mapping.c',
|
||||
autoproto='common/proto.h',
|
||||
deps='ldb NDR_DRSBLOBS LIBCLI_LDAP_NDR UTIL_LDB LIBCLI_AUTH'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('SAMDB_SCHEMA',
|
||||
'schema/schema_init.c schema/schema_set.c schema/schema_query.c schema/tests/schema_syntax.c ./schema/schema_syntax.c schema/schema_description.c schema/schema_convert_to_ol.c schema/schema_inferiors.c schema/schema_prefixmap.c',
|
||||
autoproto='schema/proto.h',
|
||||
deps='SAMDB_COMMON NDR_DRSUAPI NDR_DRSBLOBS LDBSAMBA'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('DREPL_SRV',
|
||||
'repl/drepl_service.c repl/drepl_periodic.c repl/drepl_partitions.c repl/drepl_out_pull.c repl/drepl_out_helpers.c repl/drepl_notify.c repl/drepl_ridalloc.c',
|
||||
autoproto='repl/drepl_service_proto.h',
|
||||
subsystem='service',
|
||||
init_function='server_service_drepl_init',
|
||||
deps='SAMDB process_model RPC_NDR_DRSUAPI'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('KCC_SRV',
|
||||
'kcc/kcc_service.c kcc/kcc_connection.c kcc/kcc_topology.c kcc/kcc_deleted.c kcc/kcc_periodic.c kcc/kcc_drs_replica_info.c',
|
||||
autoproto='kcc/kcc_service_proto.h',
|
||||
subsystem='service',
|
||||
init_function='server_service_kcc_init',
|
||||
deps='SAMDB process_model RPC_NDR_DRSUAPI'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_MODULE('DNS_UPDATE_SRV',
|
||||
'dns/dns_update.c',
|
||||
subsystem='service',
|
||||
init_function='server_service_dnsupdate_init',
|
||||
deps='SAMDB process_model UTIL_RUNCMD'
|
||||
)
|
||||
|
304
source4/heimdal_build/wscript_build
Normal file
304
source4/heimdal_build/wscript_build
Normal file
@ -0,0 +1,304 @@
|
||||
bld.SAMBA_ASN1('HEIMDAL_SPNEGO_ASN1',
|
||||
'../heimdal/lib/gssapi/spnego/spnego.asn1',
|
||||
options='--sequence=MechTypeList',
|
||||
directory='lib/gssapi'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_GSSAPI_ASN1',
|
||||
'../heimdal/lib/gssapi/mech/gssapi.asn1',
|
||||
directory='lib/gssapi'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_KRB5_ASN1',
|
||||
'../heimdal/lib/asn1/krb5.asn1',
|
||||
options='--option-file=krb5.opt',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_DIGEST_ASN1',
|
||||
'../heimdal/lib/asn1/digest.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_PKCS8_ASN1',
|
||||
'../heimdal/lib/asn1/pkcs8.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_PKCS9_ASN1',
|
||||
'../heimdal/lib/asn1/pkcs9.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_PKCS12_ASN1',
|
||||
'../heimdal/lib/asn1/pkcs12.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_RFC2459_ASN1',
|
||||
'../heimdal/lib/asn1/rfc2459.asn1',
|
||||
options='--preserve-binary=TBSCertificate --preserve-binary=TBSCRLCertList --preserve-binary=Name --sequence=GeneralNames --sequence=Extensions --sequence=CRLDistributionPoints',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_PKINIT_ASN1',
|
||||
'../heimdal/lib/asn1/pkinit.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_CMS_ASN1',
|
||||
'../heimdal/lib/asn1/cms.asn1',
|
||||
options='--option-file=cms.opt',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_OCSP_ASN1',
|
||||
'../heimdal/lib/hx509/ocsp.asn1',
|
||||
options='--preserve-binary=OCSPTBSRequest --preserve-binary=OCSPResponseData',
|
||||
directory='lib/hx509'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_KX509_ASN1',
|
||||
'../heimdal/lib/asn1/kx509.asn1',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_PKCS10_ASN1',
|
||||
'../heimdal/lib/hx509/pkcs10.asn1',
|
||||
options='--preserve-binary=CertificationRequestInfo',
|
||||
directory='lib/hx509'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ASN1('HEIMDAL_HDB_ASN1',
|
||||
'../heimdal/lib/hdb/hdb.asn1',
|
||||
directory='lib/hdb'
|
||||
)
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_ASN1_ERR_ET',
|
||||
'../heimdal/lib/asn1/asn1_err.et',
|
||||
directory='lib/asn1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HDB_ERR_ET',
|
||||
'../heimdal/lib/hdb/hdb_err.et',
|
||||
directory='lib/hdb'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HEIM_ERR_ET',
|
||||
'../heimdal/lib/krb5/heim_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_K524_ERR_ET',
|
||||
'../heimdal/lib/krb5/k524_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_KRB_ERR_ET',
|
||||
'../heimdal/lib/krb5/krb_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_KRB5_ERR_ET',
|
||||
'../heimdal/lib/krb5/krb5_err.et',
|
||||
directory='lib/krb5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_GKRB5_ERR_ET',
|
||||
'../heimdal/lib/gssapi/krb5/gkrb5_err.et',
|
||||
directory='lib/gssapi'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_HX509_ERR_ET',
|
||||
'../heimdal/lib/hx509/hx509_err.et',
|
||||
directory='lib/hx509'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_ERRTABLE('HEIMDAL_WIND_ERR_ET',
|
||||
'../heimdal/lib/wind/wind_err.et',
|
||||
directory='lib/wind'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_KDC',
|
||||
'../heimdal/kdc/default_config.c ../heimdal/kdc/kerberos5.c ../heimdal/kdc/krb5tgs.c ../heimdal/kdc/pkinit.c ../heimdal/kdc/log.c ../heimdal/kdc/misc.c ../heimdal/kdc/kaserver.c ../heimdal/kdc/digest.c ../heimdal/kdc/process.c ../heimdal/kdc/windc.c ../heimdal/kdc/kx509.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/kdc',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_KRB5 HEIMDAL_HDB HEIMDAL_HEIM_ASN1 HEIMDAL_DIGEST_ASN1 HEIMDAL_KX509_ASN1 HEIMDAL_NTLM HEIMDAL_HCRYPTO'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_NTLM',
|
||||
'../heimdal/lib/ntlm/ntlm.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/ntlm',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_KRB5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HDB_KEYS',
|
||||
'../heimdal/lib/hdb/keys.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/hdb',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_KRB5 HEIMDAL_HDB_ASN1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HDB',
|
||||
'../heimdal/lib/hdb/db.c ../heimdal/lib/hdb/dbinfo.c ../heimdal/lib/hdb/ext.c ../heimdal/lib/hdb/keytab.c ../heimdal/lib/hdb/mkey.c ../heimdal/lib/hdb/ndbm.c ../heimdal/lib/hdb/hdb_err.c hdb-glue.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/hdb',
|
||||
deps='HDB_LDB HEIMDAL_KRB5 HEIMDAL_HDB_KEYS HEIMDAL_ROKEN HEIMDAL_HCRYPTO HEIMDAL_COM_ERR HEIMDAL_HDB_ASN1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_GSSAPI',
|
||||
'../heimdal/lib/gssapi/spnego/init_sec_context.c ../heimdal/lib/gssapi/spnego/external.c ../heimdal/lib/gssapi/spnego/compat.c ../heimdal/lib/gssapi/spnego/context_stubs.c ../heimdal/lib/gssapi/spnego/cred_stubs.c ../heimdal/lib/gssapi/spnego/accept_sec_context.c ../heimdal/lib/gssapi/krb5/copy_ccache.c ../heimdal/lib/gssapi/krb5/delete_sec_context.c ../heimdal/lib/gssapi/krb5/init_sec_context.c ../heimdal/lib/gssapi/krb5/context_time.c ../heimdal/lib/gssapi/krb5/init.c ../heimdal/lib/gssapi/krb5/address_to_krb5addr.c ../heimdal/lib/gssapi/krb5/get_mic.c ../heimdal/lib/gssapi/krb5/inquire_context.c ../heimdal/lib/gssapi/krb5/add_cred.c ../heimdal/lib/gssapi/krb5/inquire_cred.c ../heimdal/lib/gssapi/krb5/inquire_cred_by_oid.c ../heimdal/lib/gssapi/krb5/inquire_cred_by_mech.c ../heimdal/lib/gssapi/krb5/inquire_mechs_for_name.c ../heimdal/lib/gssapi/krb5/inquire_names_for_mech.c ../heimdal/lib/gssapi/krb5/indicate_mechs.c ../heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.c ../heimdal/lib/gssapi/krb5/export_sec_context.c ../heimdal/lib/gssapi/krb5/import_sec_context.c ../heimdal/lib/gssapi/krb5/duplicate_name.c ../heimdal/lib/gssapi/krb5/import_name.c ../heimdal/lib/gssapi/krb5/compare_name.c ../heimdal/lib/gssapi/krb5/export_name.c ../heimdal/lib/gssapi/krb5/canonicalize_name.c ../heimdal/lib/gssapi/krb5/unwrap.c ../heimdal/lib/gssapi/krb5/wrap.c ../heimdal/lib/gssapi/krb5/release_name.c ../heimdal/lib/gssapi/krb5/cfx.c ../heimdal/lib/gssapi/krb5/8003.c ../heimdal/lib/gssapi/krb5/arcfour.c ../heimdal/lib/gssapi/krb5/encapsulate.c ../heimdal/lib/gssapi/krb5/display_name.c ../heimdal/lib/gssapi/krb5/sequence.c ../heimdal/lib/gssapi/krb5/display_status.c ../heimdal/lib/gssapi/krb5/release_buffer.c ../heimdal/lib/gssapi/krb5/external.c ../heimdal/lib/gssapi/krb5/compat.c ../heimdal/lib/gssapi/krb5/creds.c ../heimdal/lib/gssapi/krb5/acquire_cred.c ../heimdal/lib/gssapi/krb5/release_cred.c ../heimdal/lib/gssapi/krb5/store_cred.c ../heimdal/lib/gssapi/krb5/set_cred_option.c ../heimdal/lib/gssapi/krb5/decapsulate.c ../heimdal/lib/gssapi/krb5/verify_mic.c ../heimdal/lib/gssapi/krb5/accept_sec_context.c ../heimdal/lib/gssapi/krb5/set_sec_context_option.c ../heimdal/lib/gssapi/krb5/process_context_token.c ../heimdal/lib/gssapi/krb5/prf.c ../heimdal/lib/gssapi/krb5/aeap.c ../heimdal/lib/gssapi/mech/context.c ../heimdal/lib/gssapi/mech/gss_krb5.c ../heimdal/lib/gssapi/mech/gss_mech_switch.c ../heimdal/lib/gssapi/mech/gss_process_context_token.c ../heimdal/lib/gssapi/mech/gss_buffer_set.c ../heimdal/lib/gssapi/mech/gss_aeap.c ../heimdal/lib/gssapi/mech/gss_add_cred.c ../heimdal/lib/gssapi/mech/gss_cred.c ../heimdal/lib/gssapi/mech/gss_add_oid_set_member.c ../heimdal/lib/gssapi/mech/gss_compare_name.c ../heimdal/lib/gssapi/mech/gss_release_oid_set.c ../heimdal/lib/gssapi/mech/gss_create_empty_oid_set.c ../heimdal/lib/gssapi/mech/gss_decapsulate_token.c ../heimdal/lib/gssapi/mech/gss_inquire_cred_by_oid.c ../heimdal/lib/gssapi/mech/gss_canonicalize_name.c ../heimdal/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c ../heimdal/lib/gssapi/mech/gss_inquire_names_for_mech.c ../heimdal/lib/gssapi/mech/gss_inquire_mechs_for_name.c ../heimdal/lib/gssapi/mech/gss_wrap_size_limit.c ../heimdal/lib/gssapi/mech/gss_names.c ../heimdal/lib/gssapi/mech/gss_verify.c ../heimdal/lib/gssapi/mech/gss_display_name.c ../heimdal/lib/gssapi/mech/gss_duplicate_oid.c ../heimdal/lib/gssapi/mech/gss_display_status.c ../heimdal/lib/gssapi/mech/gss_release_buffer.c ../heimdal/lib/gssapi/mech/gss_release_oid.c ../heimdal/lib/gssapi/mech/gss_test_oid_set_member.c ../heimdal/lib/gssapi/mech/gss_release_cred.c ../heimdal/lib/gssapi/mech/gss_set_sec_context_option.c ../heimdal/lib/gssapi/mech/gss_export_name.c ../heimdal/lib/gssapi/mech/gss_seal.c ../heimdal/lib/gssapi/mech/gss_acquire_cred.c ../heimdal/lib/gssapi/mech/gss_unseal.c ../heimdal/lib/gssapi/mech/gss_verify_mic.c ../heimdal/lib/gssapi/mech/gss_accept_sec_context.c ../heimdal/lib/gssapi/mech/gss_inquire_cred_by_mech.c ../heimdal/lib/gssapi/mech/gss_indicate_mechs.c ../heimdal/lib/gssapi/mech/gss_delete_sec_context.c ../heimdal/lib/gssapi/mech/gss_sign.c ../heimdal/lib/gssapi/mech/gss_utils.c ../heimdal/lib/gssapi/mech/gss_init_sec_context.c ../heimdal/lib/gssapi/mech/gss_oid_equal.c ../heimdal/lib/gssapi/mech/gss_oid_to_str.c ../heimdal/lib/gssapi/mech/gss_context_time.c ../heimdal/lib/gssapi/mech/gss_encapsulate_token.c ../heimdal/lib/gssapi/mech/gss_get_mic.c ../heimdal/lib/gssapi/mech/gss_import_sec_context.c ../heimdal/lib/gssapi/mech/gss_inquire_cred.c ../heimdal/lib/gssapi/mech/gss_wrap.c ../heimdal/lib/gssapi/mech/gss_import_name.c ../heimdal/lib/gssapi/mech/gss_duplicate_name.c ../heimdal/lib/gssapi/mech/gss_unwrap.c ../heimdal/lib/gssapi/mech/gss_export_sec_context.c ../heimdal/lib/gssapi/mech/gss_inquire_context.c ../heimdal/lib/gssapi/mech/gss_release_name.c ../heimdal/lib/gssapi/mech/gss_set_cred_option.c ../heimdal/lib/gssapi/mech/gss_pseudo_random.c gssapi-glue.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/gssapi -I../heimdal/lib/gssapi/gssapi -I../heimdal/lib/gssapi/spnego -I../heimdal/lib/gssapi/krb5 -I../heimdal/lib/gssapi/mech',
|
||||
deps='HEIMDAL_HCRYPTO HEIMDAL_HEIM_ASN1 HEIMDAL_SPNEGO_ASN1 HEIMDAL_GSSAPI_ASN1 HEIMDAL_ROKEN HEIMDAL_KRB5'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_KRB5',
|
||||
'../heimdal/lib/krb5/acache.c ../heimdal/lib/krb5/add_et_list.c ../heimdal/lib/krb5/addr_families.c ../heimdal/lib/krb5/appdefault.c ../heimdal/lib/krb5/asn1_glue.c ../heimdal/lib/krb5/auth_context.c ../heimdal/lib/krb5/build_ap_req.c ../heimdal/lib/krb5/build_auth.c ../heimdal/lib/krb5/cache.c ../heimdal/lib/krb5/changepw.c ../heimdal/lib/krb5/codec.c ../heimdal/lib/krb5/config_file.c ../heimdal/lib/krb5/constants.c ../heimdal/lib/krb5/context.c ../heimdal/lib/krb5/convert_creds.c ../heimdal/lib/krb5/copy_host_realm.c ../heimdal/lib/krb5/crc.c ../heimdal/lib/krb5/creds.c ../heimdal/lib/krb5/crypto.c ../heimdal/lib/krb5/data.c ../heimdal/lib/krb5/eai_to_heim_errno.c ../heimdal/lib/krb5/error_string.c ../heimdal/lib/krb5/expand_hostname.c ../heimdal/lib/krb5/fcache.c ../heimdal/lib/krb5/free.c ../heimdal/lib/krb5/free_host_realm.c ../heimdal/lib/krb5/generate_seq_number.c ../heimdal/lib/krb5/generate_subkey.c ../heimdal/lib/krb5/get_addrs.c ../heimdal/lib/krb5/get_cred.c ../heimdal/lib/krb5/get_default_principal.c ../heimdal/lib/krb5/get_default_realm.c ../heimdal/lib/krb5/get_for_creds.c ../heimdal/lib/krb5/get_host_realm.c ../heimdal/lib/krb5/get_in_tkt.c ../heimdal/lib/krb5/get_port.c ../heimdal/lib/krb5/init_creds.c ../heimdal/lib/krb5/init_creds_pw.c ../heimdal/lib/krb5/kcm.c ../heimdal/lib/krb5/keyblock.c ../heimdal/lib/krb5/keytab.c ../heimdal/lib/krb5/keytab_any.c ../heimdal/lib/krb5/keytab_file.c ../heimdal/lib/krb5/keytab_memory.c ../heimdal/lib/krb5/keytab_keyfile.c ../heimdal/lib/krb5/krbhst.c ../heimdal/lib/krb5/log.c ../heimdal/lib/krb5/mcache.c ../heimdal/lib/krb5/misc.c ../heimdal/lib/krb5/mk_error.c ../heimdal/lib/krb5/mk_priv.c ../heimdal/lib/krb5/mk_rep.c ../heimdal/lib/krb5/mk_req.c ../heimdal/lib/krb5/mk_req_ext.c ../heimdal/lib/krb5/mit_glue.c ../heimdal/lib/krb5/n-fold.c ../heimdal/lib/krb5/padata.c ../heimdal/lib/krb5/pkinit.c ../heimdal/lib/krb5/plugin.c ../heimdal/lib/krb5/principal.c ../heimdal/lib/krb5/prog_setup.c ../heimdal/lib/krb5/pac.c ../heimdal/lib/krb5/prompter_posix.c ../heimdal/lib/krb5/rd_cred.c ../heimdal/lib/krb5/rd_error.c ../heimdal/lib/krb5/rd_priv.c ../heimdal/lib/krb5/rd_rep.c ../heimdal/lib/krb5/rd_req.c ../heimdal/lib/krb5/replay.c ../heimdal/lib/krb5/send_to_kdc.c ../heimdal/lib/krb5/set_default_realm.c ../heimdal/lib/krb5/store.c ../heimdal/lib/krb5/store_emem.c ../heimdal/lib/krb5/store_fd.c ../heimdal/lib/krb5/store_mem.c ../heimdal/lib/krb5/ticket.c ../heimdal/lib/krb5/time.c ../heimdal/lib/krb5/transited.c ../heimdal/lib/krb5/v4_glue.c ../heimdal/lib/krb5/version.c ../heimdal/lib/krb5/warn.c ../heimdal/lib/krb5/krb5_err.c ../heimdal/lib/krb5/heim_err.c ../heimdal/lib/krb5/k524_err.c krb5-glue.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/krb5 -I../heimdal/lib/asn1 -I../heimdal/lib/com_err',
|
||||
public_deps='HEIMDAL_COM_ERR',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_PKINIT_ASN1 HEIMDAL_WIND HEIMDAL_KRB5_ASN1 HEIMDAL_HX509 HEIMDAL_HCRYPTO LIBNETIF LIBSAMBA-HOSTCONFIG INTL'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HEIM_ASN1',
|
||||
'../heimdal/lib/asn1/der_get.c ../heimdal/lib/asn1/der_put.c ../heimdal/lib/asn1/der_free.c ../heimdal/lib/asn1/der_format.c ../heimdal/lib/asn1/der_length.c ../heimdal/lib/asn1/der_copy.c ../heimdal/lib/asn1/der_cmp.c ../heimdal/lib/asn1/extra.c ../heimdal/lib/asn1/timegm.c ../heimdal/lib/asn1/asn1_err.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/asn1',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_COM_ERR'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HCRYPTO_IMATH',
|
||||
'../heimdal/lib/hcrypto/imath/imath.c ../heimdal/lib/hcrypto/imath/iprime.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/hcrypto/imath',
|
||||
deps='HEIMDAL_ROKEN'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HCRYPTO',
|
||||
'../heimdal/lib/hcrypto/aes.c ../heimdal/lib/hcrypto/bn.c ../heimdal/lib/hcrypto/dh.c ../heimdal/lib/hcrypto/dh-imath.c ../heimdal/lib/hcrypto/des.c ../heimdal/lib/hcrypto/dsa.c ../heimdal/lib/hcrypto/engine.c ../heimdal/lib/hcrypto/md2.c ../heimdal/lib/hcrypto/md4.c ../heimdal/lib/hcrypto/md5.c ../heimdal/lib/hcrypto/rsa.c ../heimdal/lib/hcrypto/rsa-imath.c ../heimdal/lib/hcrypto/rc2.c ../heimdal/lib/hcrypto/rc4.c ../heimdal/lib/hcrypto/rijndael-alg-fst.c ../heimdal/lib/hcrypto/rnd_keys.c ../heimdal/lib/hcrypto/sha.c ../heimdal/lib/hcrypto/sha256.c ../heimdal/lib/hcrypto/ui.c ../heimdal/lib/hcrypto/evp.c ../heimdal/lib/hcrypto/evp-hcrypto.c ../heimdal/lib/hcrypto/evp-cc.c ../heimdal/lib/hcrypto/pkcs5.c ../heimdal/lib/hcrypto/pkcs12.c ../heimdal/lib/hcrypto/rand.c ../heimdal/lib/hcrypto/rand-egd.c ../heimdal/lib/hcrypto/rand-unix.c ../heimdal/lib/hcrypto/rand-fortuna.c ../heimdal/lib/hcrypto/rand-timer.c ../heimdal/lib/hcrypto/hmac.c ../heimdal/lib/hcrypto/camellia.c ../heimdal/lib/hcrypto/camellia-ntt.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/hcrypto -I../heimdal/lib',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_HEIM_ASN1 HEIMDAL_HCRYPTO_IMATH HEIMDAL_RFC2459_ASN1'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_HX509',
|
||||
'../heimdal/lib/hx509/ca.c ../heimdal/lib/hx509/cert.c ../heimdal/lib/hx509/cms.c ../heimdal/lib/hx509/collector.c ../heimdal/lib/hx509/crypto.c ../heimdal/lib/hx509/error.c ../heimdal/lib/hx509/env.c ../heimdal/lib/hx509/file.c ../heimdal/lib/hx509/keyset.c ../heimdal/lib/hx509/ks_dir.c ../heimdal/lib/hx509/ks_file.c ../heimdal/lib/hx509/ks_keychain.c ../heimdal/lib/hx509/ks_mem.c ../heimdal/lib/hx509/ks_null.c ../heimdal/lib/hx509/ks_p11.c ../heimdal/lib/hx509/ks_p12.c ../heimdal/lib/hx509/lock.c ../heimdal/lib/hx509/name.c ../heimdal/lib/hx509/peer.c ../heimdal/lib/hx509/print.c ../heimdal/lib/hx509/req.c ../heimdal/lib/hx509/revoke.c ../heimdal/lib/hx509/sel.c ../heimdal/lib/hx509/hx509_err.c ../heimdal/lib/hx509/sel-lex.c ../heimdal/lib/hx509/sel-gram.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/hx509',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_COM_ERR HEIMDAL_HEIM_ASN1 HEIMDAL_HCRYPTO HEIMDAL_CMS_ASN1 HEIMDAL_RFC2459_ASN1 HEIMDAL_OCSP_ASN1 HEIMDAL_PKCS8_ASN1 HEIMDAL_PKCS9_ASN1 HEIMDAL_PKCS12_ASN1 HEIMDAL_PKINIT_ASN1 HEIMDAL_PKCS10_ASN1 HEIMDAL_WIND'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_WIND',
|
||||
'../heimdal/lib/wind/wind_err.c ../heimdal/lib/wind/stringprep.c ../heimdal/lib/wind/errorlist.c ../heimdal/lib/wind/errorlist_table.c ../heimdal/lib/wind/normalize.c ../heimdal/lib/wind/normalize_table.c ../heimdal/lib/wind/combining.c ../heimdal/lib/wind/combining_table.c ../heimdal/lib/wind/utf8.c ../heimdal/lib/wind/bidi.c ../heimdal/lib/wind/bidi_table.c ../heimdal/lib/wind/ldap.c ../heimdal/lib/wind/map.c ../heimdal/lib/wind/map_table.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/wind',
|
||||
deps='HEIMDAL_ROKEN HEIMDAL_COM_ERR'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_PROGNAME',
|
||||
'../heimdal/lib/roken/getprogname.c ../heimdal/lib/roken/setprogname.c',
|
||||
config_option='HAVE_GETPROGNAME'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_CLOSEFROM',
|
||||
'../heimdal/lib/roken/closefrom.c',
|
||||
config_option='HAVE_CLOSEFROM'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_PROGNAME_H',
|
||||
'../heimdal/lib/roken/getprogname.c ../heimdal/lib/roken/setprogname.c',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
config_option='HAVE_GETPROGNAME'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_CLOSEFROM_H',
|
||||
'../heimdal/lib/roken/closefrom.c',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
config_option='HAVE_CLOSEFROM'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN',
|
||||
'../heimdal/lib/roken/base64.c ../heimdal/lib/roken/ct.c ../heimdal/lib/roken/hex.c ../heimdal/lib/roken/bswap.c ../heimdal/lib/roken/dumpdata.c ../heimdal/lib/roken/emalloc.c ../heimdal/lib/roken/ecalloc.c ../heimdal/lib/roken/getarg.c ../heimdal/lib/roken/get_window_size.c ../heimdal/lib/roken/getdtablesize.c ../heimdal/lib/roken/h_errno.c ../heimdal/lib/roken/issuid.c ../heimdal/lib/roken/net_read.c ../heimdal/lib/roken/net_write.c ../heimdal/lib/roken/socket.c ../heimdal/lib/roken/parse_time.c ../heimdal/lib/roken/parse_units.c ../heimdal/lib/roken/resolve.c ../heimdal/lib/roken/roken_gethostby.c ../heimdal/lib/roken/signal.c ../heimdal/lib/roken/vis.c ../heimdal/lib/roken/strlwr.c ../heimdal/lib/roken/strsep_copy.c ../heimdal/lib/roken/strsep.c ../heimdal/lib/roken/strupr.c ../heimdal/lib/roken/strpool.c ../heimdal/lib/roken/estrdup.c ../heimdal/lib/roken/erealloc.c ../heimdal/lib/roken/simple_exec.c ../heimdal/lib/roken/strcollect.c ../heimdal/lib/roken/rtbl.c ../heimdal/lib/roken/cloexec.c ../heimdal/lib/roken/xfree.c replace.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/roken -I../heimdal/include -I$(socketwrappersrcdir)',
|
||||
deps='HEIMDAL_ROKEN_PROGNAME HEIMDAL_ROKEN_CLOSEFROM resolv LIBREPLACE_NETWORK UID_WRAPPER'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_ROKEN_H',
|
||||
'../heimdal/lib/roken/base64.c ../heimdal/lib/roken/ct.c ../heimdal/lib/roken/hex.c ../heimdal/lib/roken/bswap.c ../heimdal/lib/roken/dumpdata.c ../heimdal/lib/roken/emalloc.c ../heimdal/lib/roken/ecalloc.c ../heimdal/lib/roken/getarg.c ../heimdal/lib/roken/get_window_size.c ../heimdal/lib/roken/getdtablesize.c ../heimdal/lib/roken/h_errno.c ../heimdal/lib/roken/issuid.c ../heimdal/lib/roken/net_read.c ../heimdal/lib/roken/net_write.c ../heimdal/lib/roken/socket.c ../heimdal/lib/roken/parse_time.c ../heimdal/lib/roken/parse_units.c ../heimdal/lib/roken/resolve.c ../heimdal/lib/roken/roken_gethostby.c ../heimdal/lib/roken/signal.c ../heimdal/lib/roken/vis.c ../heimdal/lib/roken/strlwr.c ../heimdal/lib/roken/strsep_copy.c ../heimdal/lib/roken/strsep.c ../heimdal/lib/roken/strupr.c ../heimdal/lib/roken/strpool.c ../heimdal/lib/roken/estrdup.c ../heimdal/lib/roken/erealloc.c ../heimdal/lib/roken/simple_exec.c ../heimdal/lib/roken/strcollect.c ../heimdal/lib/roken/rtbl.c ../heimdal/lib/roken/cloexec.c ../heimdal/lib/roken/xfree.c replace.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/roken -DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
deps='HEIMDAL_ROKEN_PROGNAME_H HEIMDAL_ROKEN_CLOSEFROM_H resolv LIBREPLACE_NETWORK'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('HEIMDAL_COM_ERR',
|
||||
'../heimdal/lib/com_err/com_err.c ../heimdal/lib/com_err/error.c',
|
||||
cflags='-I../heimdal_build -I../heimdal/lib/com_err',
|
||||
deps='HEIMDAL_ROKEN',
|
||||
config_option='HAVE_COM_ERR'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('asn1_compile',
|
||||
'../heimdal/lib/asn1/main.c ../heimdal/lib/asn1/gen.c ../heimdal/lib/asn1/gen_copy.c ../heimdal/lib/asn1/gen_decode.c ../heimdal/lib/asn1/gen_encode.c ../heimdal/lib/asn1/gen_free.c ../heimdal/lib/asn1/gen_glue.c ../heimdal/lib/asn1/gen_length.c ../heimdal/lib/asn1/gen_seq.c ../heimdal/lib/asn1/hash.c ../heimdal/lib/asn1/symbol.c ../heimdal/lib/asn1/asn1parse.c ../heimdal/lib/asn1/lex.c ../heimdal/lib/vers/print_version.c',
|
||||
use_hostcc=True,
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1 -D_SAMBA_HOSTCC_ -I../heimdal_build',
|
||||
group='build_compilers',
|
||||
deps='HEIMDAL_ROKEN_H replace',
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('compile_et',
|
||||
'../heimdal/lib/vers/print_version.c ../heimdal/lib/com_err/parse.c ../heimdal/lib/com_err/lex.c ../heimdal/lib/com_err/compile_et.c',
|
||||
use_hostcc=True,
|
||||
group='build_compilers',
|
||||
cflags='-DSOCKET_WRAPPER_DISABLE=1 -DNSS_WRAPPER_DISABLE=1',
|
||||
deps='HEIMDAL_ROKEN_H'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('samba4kinit',
|
||||
'../heimdal/kuser/kinit.c ../heimdal/lib/vers/print_version.c',
|
||||
deps='HEIMDAL_KRB5 HEIMDAL_NTLM'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('samba4kpasswd',
|
||||
'../heimdal/kpasswd/kpasswd.c ../heimdal/lib/vers/print_version.c',
|
||||
deps='HEIMDAL_KRB5 HEIMDAL_NTLM'
|
||||
)
|
||||
|
||||
|
||||
bld.SAMBA_BINARY('rkpty',
|
||||
'../heimdal/lib/roken/rkpty.c ../../lib/socket_wrapper/socket_wrapper.c',
|
||||
deps='HEIMDAL_ROKEN OPENPTY'
|
||||
)
|
||||
|
37
source4/heimdal_build/wscript_configure
Normal file
37
source4/heimdal_build/wscript_configure
Normal file
@ -0,0 +1,37 @@
|
||||
conf.CHECK_TYPE('u_char', 'uint8_t')
|
||||
conf.CHECK_TYPE('u_int32_t', 'uint32_t')
|
||||
|
||||
conf.CHECK_HEADERS('err.h')
|
||||
|
||||
conf.CHECK_HEADERS('ifaddrs.h')
|
||||
conf.CHECK_HEADERS('''crypt.h curses.h errno.h inttypes.h netdb.h signal.h sys/bswap.h
|
||||
sys/file.h sys/stropts.h sys/timeb.h sys/times.h sys/uio.h sys/un.h
|
||||
sys/utsname.h term.h termcap.h time.h timezone.h ttyname.h netinet/in.h
|
||||
netinet/in6.h netinet6/in6.h libintl.h''')
|
||||
|
||||
conf.CHECK_FUNCS('''atexit cgetent getprogname setprogname inet_aton gethostname getnameinfo
|
||||
iruserok putenv rcmd readv sendmsg setitimer socket strlwr strncasecmp
|
||||
strptime strsep strsep_copy strtok_r strupr swab umask uname unsetenv
|
||||
closefrom hstrerror err warn errx warnx flock getipnodebyname
|
||||
getipnodebyaddr freehostent writev''')
|
||||
|
||||
conf.CHECK_FUNCS('bswap16')
|
||||
conf.CHECK_FUNCS('bswap32')
|
||||
|
||||
conf.DEFINE('HAVE_KRB_STRUCT_WINSIZE', 1)
|
||||
conf.DEFINE('VOID_RETSIGTYPE', 1)
|
||||
conf.CHECK_VARIABLE('h_errno')
|
||||
|
||||
conf.CHECK_HEADERS('arpa/nameser.h dns.h')
|
||||
conf.CHECK_FUNCS_IN('res_search res_nsearch res_ndestroy dns_search dn_expand', 'resolv')
|
||||
conf.CHECK_VARIABLE('_res')
|
||||
conf.CHECK_HEADERS('pty.h util.h libutil.h')
|
||||
conf.CHECK_FUNCS_IN('openpty', 'util')
|
||||
conf.CHECK_FUNCS_IN('gettext', 'intl')
|
||||
|
||||
|
||||
conf.DEFINE('HAVE_COM_ERR',1)
|
||||
conf.DEFINE('HAVE_KRB5',1)
|
||||
conf.DEFINE('HAVE_GSSAPI',1)
|
||||
|
||||
conf.DEFINE('SAMBA4_INTERNAL_HEIMDAL', 1)
|
@ -1,7 +1,80 @@
|
||||
# top level waf build script for samba4
|
||||
|
||||
bld.PREDECLARE('LIBNDR', 'LIBRARY')
|
||||
bld.PREDECLARE('LIBSAMBA-UTIL', 'LIBRARY')
|
||||
bld.PREDECLARE('torture', 'LIBRARY')
|
||||
bld.PREDECLARE('TORTURE_RAW', 'MODULE')
|
||||
bld.PREDECLARE('TORTURE_RAP', 'MODULE')
|
||||
bld.PREDECLARE('TORTURE_LDAP', 'MODULE')
|
||||
bld.PREDECLARE('python_dcerpc_misc', 'PYTHON')
|
||||
bld.PREDECLARE('python_dcerpc_security', 'PYTHON')
|
||||
bld.PREDECLARE('pycredentials', 'PYTHON')
|
||||
bld.PREDECLARE('pyauth', 'PYTHON')
|
||||
bld.PREDECLARE('gensec', 'LIBRARY')
|
||||
bld.PREDECLARE('registry', 'LIBRARY')
|
||||
bld.PREDECLARE('HEIMDAL_HDB_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_SPNEGO_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_GSSAPI_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_KRB5_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_DIGEST_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_PKCS8_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_PKCS9_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_PKCS12_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_RFC2459_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_PKINIT_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_CMS_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_OCSP_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_KX509_ASN1', 'ASN1')
|
||||
bld.PREDECLARE('HEIMDAL_PKCS10_ASN1', 'ASN1')
|
||||
|
||||
# missing subsystems
|
||||
bld.SAMBA_SUBSYSTEM('pyldb_util', '')
|
||||
bld.SAMBA_SUBSYSTEM('pyldb', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBPOPT', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBCLI_SMB2', '')
|
||||
bld.SAMBA_SUBSYSTEM('dcerpc_mgmt', '')
|
||||
bld.SAMBA_SUBSYSTEM('TORTURE_LDB_MODULE', '')
|
||||
bld.SAMBA_SUBSYSTEM('INTL', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_SAMR', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBLDB_CMDLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('NETAPI', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('OPENPTY', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBCLIENT', '')
|
||||
bld.SAMBA_SUBSYSTEM('BLKID', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBTEVENT_EXT', '')
|
||||
bld.SAMBA_SUBSYSTEM('LIBTEVENT_EXT', '')
|
||||
bld.SAMBA_SUBSYSTEM('PTHREAD', '')
|
||||
bld.SAMBA_SUBSYSTEM('CRYPT', '')
|
||||
bld.SAMBA_SUBSYSTEM('PAM', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('SASL', '')
|
||||
bld.SAMBA_SUBSYSTEM('smbcalls', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
|
||||
bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '')
|
||||
bld.SAMBA_SUBSYSTEM('ZLIB', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_SRVSVC', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '')
|
||||
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
|
||||
bld.SAMBA_SUBSYSTEM('ICONV', '')
|
||||
bld.SAMBA_SUBSYSTEM('NDR_MISC', '')
|
||||
|
||||
bld.BUILD_SUBDIR('../lib/replace')
|
||||
bld.BUILD_SUBDIR('../lib/talloc')
|
||||
bld.BUILD_SUBDIR('../lib/tdb')
|
||||
bld.BUILD_SUBDIR('../lib/tevent')
|
||||
bld.BUILD_SUBDIR('lib/ldb')
|
||||
bld.BUILD_SUBDIR('dynconfig')
|
||||
bld.BUILD_SUBDIR('../lib/util/charset')
|
||||
bld.BUILD_SUBDIR('scripting/python')
|
||||
bld.BUILD_SUBDIR('param')
|
||||
bld.BUILD_SUBDIR('librpc')
|
||||
bld.BUILD_SUBDIR('dsdb')
|
||||
bld.BUILD_SUBDIR('smbd')
|
||||
bld.BUILD_SUBDIR('cluster')
|
||||
@ -12,8 +85,6 @@ bld.BUILD_SUBDIR('../nsswitch')
|
||||
bld.BUILD_SUBDIR('../nsswitch/libwbclient')
|
||||
bld.BUILD_SUBDIR('lib/samba3')
|
||||
bld.BUILD_SUBDIR('lib/socket')
|
||||
bld.BUILD_SUBDIR('lib/ldb')
|
||||
bld.BUILD_SUBDIR('../lib/util/charset')
|
||||
bld.BUILD_SUBDIR('lib/ldb-samba')
|
||||
bld.BUILD_SUBDIR('lib/tls')
|
||||
bld.BUILD_SUBDIR('lib/registry')
|
||||
@ -31,7 +102,6 @@ bld.BUILD_SUBDIR('../lib/crypto')
|
||||
bld.BUILD_SUBDIR('../lib/torture')
|
||||
bld.BUILD_SUBDIR('lib')
|
||||
bld.BUILD_SUBDIR('lib/com')
|
||||
bld.BUILD_SUBDIR('param')
|
||||
bld.BUILD_SUBDIR('smb_server')
|
||||
bld.BUILD_SUBDIR('rpc_server')
|
||||
bld.BUILD_SUBDIR('ldap_server')
|
||||
@ -46,12 +116,11 @@ bld.BUILD_SUBDIR('utils')
|
||||
bld.BUILD_SUBDIR('ntvfs')
|
||||
bld.BUILD_SUBDIR('ntptr')
|
||||
bld.BUILD_SUBDIR('torture')
|
||||
bld.BUILD_SUBDIR('librpc')
|
||||
bld.BUILD_SUBDIR('../librpc')
|
||||
bld.BUILD_SUBDIR('client')
|
||||
bld.BUILD_SUBDIR('libcli')
|
||||
bld.BUILD_SUBDIR('../libcli/smb')
|
||||
bld.BUILD_SUBDIR('../libcli/cldap')
|
||||
bld.BUILD_SUBDIR('scripting/python')
|
||||
bld.BUILD_SUBDIR('kdc')
|
||||
bld.BUILD_SUBDIR('../lib/smbconf')
|
||||
bld.BUILD_SUBDIR('../lib/async_req')
|
||||
@ -64,3 +133,5 @@ bld.BUILD_SUBDIR('../libcli/samsync')
|
||||
bld.BUILD_SUBDIR('../libgpo')
|
||||
bld.BUILD_SUBDIR('../libcli/named_pipe_auth')
|
||||
bld.BUILD_SUBDIR('heimdal_build')
|
||||
|
||||
bld.CHECK_DEPENDENCIES()
|
||||
|
Loading…
x
Reference in New Issue
Block a user