I am looking into the same matter and I get pass make but using emcc to generate js fails on me, did you get the last step working?
$ emcc ngspice.bc
warning: Casting a function pointer type to a potentially incompatible one (use -s VERBOSE=1 to see more)
warning: Casting a function pointer type to a potentially incompatible one (use -s VERBOSE=1 to see more)
Stack: Error
at assertTrue (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:59:26)
at makeComparison (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:2057:5)
at eval (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:1162:18)
at Array.map (native)
at eval (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:1161:43)
at Array.forEach (native)
at switchHandler (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:1153:31)
at eval (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:522:34)
at Array.forEach (native)
at functionSplitter (eval at globalEval (/home/f.ludwig/emtest/emscripten/src/compiler.js:105:8), <anonymous>:511:16)
aborting from js compiler due to exception: Assertion failed: undefined | undefined
aborting from js compiler due to exception: unhandleable illegal icmp: slt | undefined
Traceback (most recent call last):
File "/home/f.ludwig/emtest/emscripten/emscripten.py", line 1405, in <module>
_main(environ=os.environ)
File "/home/f.ludwig/emtest/emscripten/emscripten.py", line 1393, in _main
temp_files.run_and_clean(lambda: main(
File "/home/f.ludwig/emtest/emscripten/tools/tempfiles.py", line 39, in run_and_clean
return func()
File "/home/f.ludwig/emtest/emscripten/emscripten.py", line 1401, in <lambda>
DEBUG_CACHE=DEBUG_CACHE,
File "/home/f.ludwig/emtest/emscripten/emscripten.py", line 1288, in main
jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, DEBUG_CACHE=DEBUG_CACHE)
File "/home/f.ludwig/emtest/emscripten/emscripten.py", line 292, in emscript
assert len(output) == 2, 'Did not receive forwarded data in an output - process failed? We only got: ' + output[0][-3000:]
AssertionError: Did not receive forwarded data in an output - process failed? We only got: EAPF64[(($311)>>3)]=$313;
var $314=($12)+($21);
var $315=($314)+($25);
var $316=($_lobit|0);
var $317=($19)+($23);
var $318=($316)*($317);
var $319=($315)+($318);
var $320=($319)*($79);
var $321=HEAP32[(($112)>>2)];
var $322=HEAPF64[(($321)>>3)];
var $323=($320)+($322);
HEAPF64[(($321)>>3)]=$323;
var $324=($14)+($21);
var $325=($324)+($27);
var $326=($_lobit17_not|0);
var $327=($326)*($317);
var $328=($327)+($325);
var $329=($328)*($79);
var $330=HEAP32[(($125)>>2)];
var $331=HEAPF64[(($330)>>3)];
var $332=($329)+($331);
HEAPF64[(($330)>>3)]=$332;
var $333=(($here_019+420)|0);
var $334=HEAP32[(($333)>>2)];
var $335=HEAPF64[(($334)>>3)];
var $336=($335)-($299);
HEAPF64[(($334)>>3)]=$336;
var $337=(($here_019+436)|0);
var $338=HEAP32[(($337)>>2)];
var $339=HEAPF64[(($338)>>3)];
var $340=($339)-($304);
HEAPF64[(($338)>>3)]=$340;
var $341=($25)*($79);
var $342=HEAP32[(($193)>>2)];
var $343=HEAPF64[(($342)>>3)];
var $344=($343)-($341);
HEAPF64[(($342)>>3)]=$344;
var $345=($27)*($79);
var $346=HEAP32[(($206)>>2)];
var $347=HEAPF64[(($346)>>3)];
var $348=($347)-($345);
HEAPF64[(($346)>>3)]=$348;
var $349=(($here_019+452)|0);
var $350=HEAP32[(($349)>>2)];
var $351=HEAPF64[(($350)>>3)];
var $352=($351)-($299);
HEAPF64[(($350)>>3)]=$352;
var $353=((($_lobit17_not)-($_lobit))|0);
var $354=($353|0);
var $355=($354)*($19);
var $356=($355)*($79);
var $357=HEAP32[(($219)>>2)];
var $358=HEAPF64[(($357)>>3)];
var $359=($356)+($358);
HEAPF64[(($357)>>3)]=$359;
var $360=($354)*($23);
var $361=($360)-($25);
var $362=($361)*($79);
var $363=HEAP32[(($235)>>2)];
var $364=HEAPF64[(($363)>>3)];
var $365=($362)+($364);
HEAPF64[(($363)>>3)]=$365;
var $366=((-.0))-($21);
var $367=($366)-($327);
var $368=($367)*($79);
var $369=HEAP32[(($248)>>2)];
var $370=HEAPF64[(($369)>>3)];
var $371=($368)+($370);
HEAPF64[(($369)>>3)]=$371;
var $372=(((-$353))|0);
var $373=($372|0);
var $374=($373)*($19);
var $375=($374)*($79);
var $376=HEAP32[(($261)>>2)];
var $377=HEAPF64[(($376)>>3)];
var $378=($375)+($377);
HEAPF64[(($376)>>3)]=$378;
var $379=(($here_019+468)|0);
var $380=HEAP32[(($379)>>2)];
var $381=HEAPF64[(($380)>>3)];
var $382=($381)-($304);
HEAPF64[(($380)>>3)]=$382;
var $383=((-.0))-($27);
var $384=($383)-($360);
var $385=($384)*($79);
var $386=HEAP32[(($276)>>2)];
var $387=HEAPF64[(($386)>>3)];
var $388=($385)+($387);
HEAPF64[(($386)>>3)]=$388;
var $389=($366)-($318);
var $390=($389)*($79);
var $391=HEAP32[(($289)>>2)];
var $392=HEAPF64[(($391)>>3)];
var $393=($390)+($392);
HEAPF64[(($391)>>3)]=$393;
var $394=(($here_019+4)|0);
var $here_0=HEAP32[(($394)>>2)];
var $395=($here_0|0)==0;
if($395){label=5;break;}else{var $here_019=$here_0;label=4;break;}
case 5:
var $396=(($model_020+4)|0);
var $397=HEAP32[(($396)>>2)];
var $398=($397|0)==0;
if($398){label=6;break;}else{var $model_020=$397;label=3;break;}
case 6:
return 0;
default: assert(0, "bad label: " + label);
}
}
Traceback (most recent call last):
File "../emscripten/emcc", line 1525, in <module>
final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
File "/home/f.ludwig/emtest/emscripten/tools/shared.py", line 1276, in emscripten
assert os.path.exists(filename + '.o.js') and len(open(filename + '.o.js', 'r').read()) > 0, 'Emscripten failed to generate .js: ' + str(compiler_output)
AssertionError: Emscripten failed to generate .js: