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
,