summaryrefslogtreecommitdiff
path: root/buildtools/wafsamba/samba_patterns.py
blob: f70689558669c51ffe99d775676145d0f01d226a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# a waf tool to add extension based build patterns for Samba

import os, sys, Options
import string, Task, Utils, optparse
from Configure import conf
from Logs import debug
from TaskGen import extension
from samba_utils import *

################################################################################
# a et task which calls out to compile_et to do the work
Task.simple_task_type('et',
		      '../heimdal_build/et_compile_wrapper.sh . ${TGT[0].bld_dir(env)} default/source4/heimdal_build/compile_et ${SRC[0].abspath(env)} ${TGT[0].bldpath(env)}',
                      color='BLUE', ext_out='.c',
                      shell = False)

@extension('.et')
def process_et(self, node):
    c_node = node.change_ext('.c')
    h_node  = node.change_ext('.h')
    self.create_task('et', node, [c_node, h_node])
    self.allnodes.append(c_node)





################################################################################
# a asn1 task which calls out to asn1_compile_wrapper.sh to do the work
Task.simple_task_type('asn1',
		      '''
# shell script to convert ASN1 to C. This could be separated out if we want to
set -e
compiler=${TGT[0].compiler}
destdir=${TGT[0].destdir}
wrapper=${TGT[0].asn1wrapper}
srcfile=${SRC[0].abspath(env)}
asn1name=${TGT[0].asn1name}
options="${TGT[0].asn1options}"

# run the wrapper
$wrapper . $destdir $compiler $srcfile $asn1name ${options} --one-code-file

# that generated 3 files:
#    ${asn1name}.hx
#    asn1_${asn1name}.x
#    ${asn1name}_files


hxfile=$destdir/$asn1name.hx
xfile=$destdir/asn1_$asn1name.x
listfilee=$destdir/"$asn1name"_files

cfile=${TGT[0].abspath(env)}
hfile=${TGT[1].abspath(env)}

cp $hxfile $hfile
echo '#include "config.h"' > $cfile
cat $xfile >> $cfile
rm -f $listfile

''',
                      color='BLUE',
                      ext_out='.c',
                      shell = True)

@extension('.asn1')
def process_asn1(self, node):

    asn1name = string.replace(node.file(), '.', '_')
    c_node  = NEW_NODE(node, 'asn1_%s.c' % asn1name)
    h_node  = NEW_NODE(node, '%s.h' % asn1name)

    c_node.destdir      = "default/source4/heimdal/" + self.asn1directory
    c_node.asn1options  = self.asn1options
    c_node.asn1name     = asn1name
    c_node.asn1wrapper  = "../heimdal_build/asn1_compile_wrapper.sh"
    c_node.compiler     = "default/source4/heimdal_build/asn1_compile"

    self.create_task('asn1', node, [c_node, h_node])
    self.allnodes.append(c_node)