mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
r10356: Make the proto generator work with scons
(This used to be commit a2268f1dd441059955bee30cf2a9028656c14099)
This commit is contained in:
parent
5c40f9cd9b
commit
920a627ba8
@ -9,7 +9,7 @@
|
||||
|
||||
hostenv = Environment(
|
||||
toolpath=['build/scons','.'],
|
||||
tools=['default'],
|
||||
tools=['default','pidl','proto','et'],
|
||||
CPPPATH=['#include','#','#lib'],
|
||||
CPPDEFINES={'_SAMBA_BUILD_': None},
|
||||
)
|
||||
@ -53,9 +53,13 @@ paths = {
|
||||
dynconfig = dynenv.Object('dynconfig.c')
|
||||
Export('dynconfig')
|
||||
|
||||
proto_files = []
|
||||
|
||||
SConscript(
|
||||
dirs=['param','lib','torture','rpc_server','cldap_server','libcli',
|
||||
'nbt_server','client','ldap_server','libnet','nsswitch','web_server',
|
||||
'smbd','dsdb','heimdal_build','ntptr','kdc','smb_server','ntvfs',
|
||||
'winbind','scripting','auth'],
|
||||
exports='buildenv hostenv')
|
||||
exports='buildenv hostenv proto_files')
|
||||
|
||||
hostenv.CProtoHeader(target='include/proto.h',source = proto_files)
|
||||
|
@ -5,22 +5,29 @@ Tool-specific initialization for et
|
||||
"""
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.ET
|
||||
import SCons.Util
|
||||
|
||||
et_scanner = SCons.Scanner.ET.ETScan()
|
||||
import SCons.Tool
|
||||
|
||||
et_builder = SCons.Builder.Builder(action='$ETCOM',
|
||||
src_suffix = '.et',
|
||||
suffix='.c',
|
||||
scanner = et_scanner)
|
||||
suffix='.c')
|
||||
|
||||
def generate(env):
|
||||
env['ET'] = 'FIXME'
|
||||
env['PROTOCOM'] = '$ET $SOURCE'
|
||||
env['ET'] = env.Detect('et_compile')
|
||||
env['ETCOM'] = '$ET $SOURCE'
|
||||
env['BUILDERS']['ET'] = et_builder
|
||||
|
||||
def exists(env):
|
||||
return env.Detect('FIXME')
|
||||
return env.Detect(['et_compile'])
|
||||
|
||||
def generate(env):
|
||||
"""Add Builders and construction variables for lex to an Environment."""
|
||||
c_file, cxx_file = SCons.Tool.createCFileBuilders(env)
|
||||
|
||||
c_file.add_action('.l', SCons.Defaults.LexAction)
|
||||
cxx_file.add_action('.ll', SCons.Defaults.LexAction)
|
||||
|
||||
env['LEX'] = env.Detect('flex') or 'lex'
|
||||
env['LEXFLAGS'] = SCons.Util.CLVar('')
|
||||
env['LEXCOM'] = '$LEX $LEXFLAGS -t $SOURCES > $TARGET'
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
# Based on the M4 macro by Bruno Haible.
|
||||
|
||||
def _CheckIconvPath(path):
|
||||
def exists(env):
|
||||
return True
|
||||
|
||||
def generate(env):
|
||||
env['custom_tests']['CheckIconv'] = CheckIconv
|
||||
|
||||
def _CheckIconvPath(context,path):
|
||||
# Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||
# those with the standalone portable libiconv installed).
|
||||
context.Message("checking for iconv in " + path)
|
||||
@ -58,7 +64,7 @@ def CheckIconv(context):
|
||||
look_dirs = ['/usr','/usr/local','/sw']
|
||||
|
||||
for p in look_dirs:
|
||||
_CheckIconvPath(p) #FIXME: Handle return value
|
||||
_CheckIconvPath(context,p) #FIXME: Handle return value
|
||||
|
||||
if context.TryRun("""
|
||||
#include <iconv.h>
|
||||
|
@ -16,17 +16,10 @@ pidl_builder = SCons.Builder.Builder(action='$PIDLCOM',
|
||||
scanner = idl_scanner)
|
||||
|
||||
def generate(env):
|
||||
env['PIDL'] = 'pidl'
|
||||
env['PIDLCPP'] = env['CPP']
|
||||
env['PIDLFLAGS'] = []
|
||||
env['PIDLCOM'] = 'CPP=$PIDLCPP $PIDL $PIDLFLAGS -- $SOURCE'
|
||||
env['BUILDERS']['NdrMarshaller'] = pidl_builder
|
||||
env['PIDL'] = env.Detect('pidl') or './pidl/pidl'
|
||||
env['PIDLFLAGS'] = []
|
||||
env['PIDLCOM'] = 'CPP=$CPP $PIDL $PIDLFLAGS -- $SOURCE'
|
||||
env['BUILDERS']['NdrMarshaller'] = pidl_builder
|
||||
|
||||
def exists(env):
|
||||
if (env.Detect('./pidl/pidl')):
|
||||
return 1
|
||||
|
||||
if (env.Detect('pidl')):
|
||||
return 1
|
||||
|
||||
return 0
|
||||
return env.Detect(['./pidl/pidl','pidl'])
|
||||
|
@ -5,22 +5,16 @@ Tool-specific initialization for mkproto (C Proto File generator)
|
||||
"""
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.C
|
||||
import SCons.Util
|
||||
|
||||
c_scanner = SCons.Scanner.C.CScan()
|
||||
|
||||
proto_builder = SCons.Builder.Builder(action='$PROTOCOM',
|
||||
src_suffix = '.idl',
|
||||
suffix='.h',
|
||||
scanner = c_scanner)
|
||||
src_suffix = '.c',
|
||||
suffix='.h')
|
||||
|
||||
def generate(env):
|
||||
env['MKPROTO'] = './script/mkproto.sh'
|
||||
env['PROTOCOM'] = '$MKPROTO "$PERL" -h _PROTO_H_ ${TARGETS[0]} $SOURCE'
|
||||
env['BUILDERS']['ProtoHeader'] = proto_builder
|
||||
env['MKPROTO'] = './script/mkproto.sh'
|
||||
env['PROTOCOM'] = '$MKPROTO "$PERL" -h _PROTO_H_ ${TARGETS[0]} $SOURCE'
|
||||
env['BUILDERS']['CProtoHeader'] = proto_builder
|
||||
|
||||
def exists(env):
|
||||
return env.Detect('./script/mkproto.sh')
|
||||
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
Import('hostenv')
|
||||
# tastes like -*- python -*-
|
||||
|
||||
basic = hostenv.StaticLibrary('basic',
|
||||
['version.c', 'xfile.c', 'debug.c', 'fault.c',
|
||||
basic_files = ['version.c', 'xfile.c', 'debug.c', 'fault.c',
|
||||
'signal.c', 'system.c', 'time.c', 'genrand.c', 'dprintf.c',
|
||||
'util_str.c', 'util_strlist.c', 'util_unistr.c', 'util_file.c',
|
||||
'data_blob.c', 'util.c', 'util_sock.c', 'substitute.c',
|
||||
'fsusage.c', 'ms_fnmatch.c', 'select.c', 'mutex.c', 'idtree.c',
|
||||
'unix_privs.c', 'db_wrap.c', 'gendb.c', 'credentials.c'])
|
||||
'db_wrap.c', 'gendb.c', 'credentials.c']
|
||||
basic = hostenv.StaticLibrary('basic', basic_files)
|
||||
Export('basic')
|
||||
|
||||
hostenv.StaticLibrary('netif', ['netif/interface.c', 'netif/netif.c'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user