@@ -61,6 +61,14 @@ SHARED_TARGET = SHARED = ""
61
61
62
62
MVP = env ("MVP" , true )
63
63
64
+ if env ("EMMAKEN_JUST_CONFIGURE" , false ):
65
+ CONFIGURE = True
66
+ elif env ("CONFIG_SITE" , false ):
67
+ CONFIGURE = True
68
+ else :
69
+ CONFIGURE = env ("CONFIGURE" , false )
70
+
71
+
64
72
if MVP :
65
73
# turn of wasm ex (https://github.com/emscripten-core/emscripten/pull/20536)
66
74
# -fno-wasm-exceptions -sEMSCRIPTEN_LONGJMP=0
93
101
WASM_EXTRA = env ("WASM_EXTRA" , "" ) + " " + env ("WASM_OPTS" , "" )
94
102
95
103
COPTS = env ("COPTS" , "-fPIC" )
104
+
105
+
96
106
MAIN_MODULE = LINKING = False
97
107
EXE = ""
98
108
MODE = ""
@@ -173,6 +183,7 @@ for argc, arg in enumerate(sys.argv):
173
183
174
184
os .environ .pop ("_EMCC_CCACHE" , "" )
175
185
186
+
176
187
"""
177
188
if [ "\$arg" = "-lutil" ]
178
189
then
@@ -201,27 +212,55 @@ os.environ.pop("_EMCC_CCACHE", "")
201
212
"""
202
213
203
214
final = [EXEC ]
215
+
216
+ # a.out test misses fpic
217
+ if CONFIGURE and len (out )== 1 :
218
+ SKIP = out [0 ] == 'conftest.c'
219
+ sys .argv .insert (0 ,"-fPIC" )
220
+
221
+
204
222
if SKIP :
205
223
final .extend (sys .argv )
206
224
else :
225
+ if EXE .endswith ('.cjs' ):
226
+ def make_exe (* argv ,** kw ):
227
+ global CONFIGURE
228
+ if os .path .isfile (EXE ) and not CONFIGURE :
229
+ with open (EXE ,'r' ) as file :
230
+ bin = file .read ()
231
+ with open (EXE ,"w" ) as file :
232
+ file .write ("#!/usr/bin/env node\n " )
233
+ file .write (bin )
234
+ os .chmod (EXE , 0o766 )
235
+
236
+ final .append ('-sENVIRONMENT=node' )
237
+ final .append ('-sNODERAWFS' )
238
+ final .append ("-L/lib/wasm32-emscripten/pic" )
239
+ __import__ ("atexit" ).register (make_exe )
240
+
241
+
207
242
if IS_SHARED :
208
243
final .extend (arglist (SHARED , COPTS ))
209
244
final .extend (CPU )
210
- final .extend (arglist (WASM_EXTRA , env ("LDFLAGS" , "" ), "-gsource-map --source-map-base /" ))
245
+ #, "-gsource-map --source-map-base /"))
246
+ final .extend (arglist (WASM_EXTRA , env ("LDFLAGS" , "" )))
211
247
212
248
# do not pass WASM opts when -c/-o but always PIC
213
249
elif MAIN_MODULE :
214
250
final .extend (arglist (SHARED , COPTS ))
215
251
final .extend (CPU )
216
- final .extend (arglist (env ("CPU_EXTRA" , "" ), env ("CPPFLAGS" , "" ), "-DBUILD_STATIC -gsource-map --source-map-base /" ))
252
+ # -gsource-map --source-map-base /
253
+ final .extend (arglist (env ("CPU_EXTRA" , "" ), env ("CPPFLAGS" , "" ), "-DBUILD_STATIC" ))
217
254
else :
218
255
final .extend (arglist (SHARED , COPTS , env ("CPU_EXTRA" , "" ), env ("CPPFLAGS" , "" ), "-DBUILD_STATIC" ))
219
256
final .extend (out )
220
257
final .extend (COMMON )
221
258
259
+
260
+
222
261
if env ("EMCC_TRACE" , false ):
223
- dbg (
224
- f"""
262
+ def dump ():
263
+ dbg ( f"""
225
264
226
265
{ COMMON = }
227
266
@@ -238,11 +277,18 @@ if env("EMCC_TRACE", false):
238
277
{ final = }
239
278
240
279
""" )
280
+ dump ()
281
+ if os .path .isfile ('conftest.c' ):
282
+ __import__ ("shutil" ).copy ("conftest.c" , os .environ ["SDKROOT" ]+ "/emcc.c" )
283
+
241
284
242
285
sys .path .insert (0 , str (Path (EXEC ).parent ))
243
286
sys .argv .clear ()
244
287
while len (final ):
245
288
arg = final .pop (0 )
246
289
#arg = arg.replace('"', '\\"')
247
290
sys .argv .append (arg )
291
+
248
292
exec (open (EXEC , "r" ).read (), globals (), globals ())
293
+
294
+
0 commit comments