5 def generate_winexesvc_c_from_exe(t):
6 src = t.inputs[0].bldpath(t.env)
7 tgt = t.outputs[0].bldpath(t.env)
8 fn = t.env.SAMBA_GENERATOR_VARS['WINEXE_FN']
9 src_blob = samba_utils.load_file(src)
17 h = ' '.join(["0x%02X," % ord(x) for x in l])
18 result += "\t\t%s\n" % (h)
21 src_array = c_array(src_blob)
25 #include "lib/util/data_blob.h"
27 const DATA_BLOB *%s(void);
28 const DATA_BLOB *%s(void)
30 \tstatic const uint8_t array[] = {
33 \tstatic const DATA_BLOB blob = {
34 \t\t.data = discard_const_p(uint8_t, array),
35 \t\t.length = ARRAY_SIZE(array),
39 ''' % (fn, fn, src_array)
41 ret = samba_utils.save_file(tgt, contents)
44 winexesvc_binaries = ''
46 if bld.env.WINEXE_CC_WIN32:
50 target='winexesvc32.exe',
51 rule='${WINEXE_CC_WIN32} ${SRC} -o ${TGT} ${WINEXE_LDFLAGS}')
52 vars = {"WINEXE_FN": "winexesvc32_exe_binary"}
54 'winexesvc32_exe_binary',
55 source='winexesvc32.exe',
56 target='winexesvc32_exe_binary.c',
59 rule=generate_winexesvc_c_from_exe)
60 winexesvc_binaries += ' winexesvc32_exe_binary.c'
62 if bld.env.WINEXE_CC_WIN64:
66 target='winexesvc64.exe',
67 rule='${WINEXE_CC_WIN64} ${SRC} -o ${TGT} ${WINEXE_LDFLAGS}')
68 vars = {"WINEXE_FN": "winexesvc64_exe_binary"}
70 'winexesvc64_exe_binary',
71 source='winexesvc64.exe',
72 target='winexesvc64_exe_binary.c',
75 rule=generate_winexesvc_c_from_exe)
76 winexesvc_binaries += ' winexesvc64_exe_binary.c'
78 if winexesvc_binaries != '':
79 bld.SAMBA3_BINARY('winexe',
80 source='winexe.c ' + winexesvc_binaries,