summaryrefslogtreecommitdiff
path: root/source4/build/scons/asn1.py
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/scons/asn1.py')
-rw-r--r--source4/build/scons/asn1.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/source4/build/scons/asn1.py b/source4/build/scons/asn1.py
index 078ac74a55..f0068e20dd 100644
--- a/source4/build/scons/asn1.py
+++ b/source4/build/scons/asn1.py
@@ -5,22 +5,29 @@ Tool-specific initialization for ASN1
"""
import SCons.Defaults
-import SCons.Scanner.ASN1
import SCons.Util
+import re
-asn1_scanner = SCons.Scanner.ASN1.ASN1Scan()
+output_re = re.compile(r'^([A-Za-z0-9_-]+)[ \t]*::=', re.M)
+
+def asn1_emitter(target,source,env):
+ targets = []
+ for s in source:
+ node = env.File(s)
+ contents = node.get_contents()
+ for j in output_re.findall(contents):
+ targets.append(str(node.get_dir()) + '/asn1_' + j + '.c')
+ return targets, source
asn1_builder = SCons.Builder.Builder(action='$ASN1COM',
src_suffix = '.asn1',
suffix='.c',
- scanner = asn1_scanner)
+ emitter = asn1_emitter)
def generate(env):
- env['ASN1'] = 'FIXME'
- env['PROTOCOM'] = '$ASN1 $SOURCE'
+ env['ASN1'] = './bin/asn1_compile'
+ env['ASN1COM'] = '$ASN1 $SOURCE'
env['BUILDERS']['ASN1'] = asn1_builder
def exists(env):
- return env.Detect('FIXME')
-
-
+ return env.Detect('asn1_compile')