Skip to content

Commit ea0d82e

Browse files
author
d3x0r
committed
Some emscripten build updates to try to get dynamic linking to work; and device orientation (permission denied?)
1 parent 2b838c7 commit ea0d82e

File tree

20 files changed

+674
-12
lines changed

20 files changed

+674
-12
lines changed

amalgamate/wasmgui/libs/index.html

+12-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@
4040
</BODY>
4141
<SCRIPT src="x.js"></SCRIPT>
4242
<SCRIPT>
43-
document.querySelector( "[id='SACK Display 1']" ).focus();
43+
44+
var display = document.querySelector( "[id='SACK Display 1']" );
45+
display.focus();
46+
47+
display.addEventListener('contextmenu', function(e) {
48+
if (e.button == 2) {
49+
// Block right-click menu thru preventing default action.
50+
e.preventDefault();
51+
}
52+
});
53+
54+
4455
</SCRIPT>
4556
</HTML>

amalgamate/wasmgui/libs/loader.c

+25-3
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,43 @@
33
#include <stdio.h>
44
#include <stdint.h>
55
#include <stdbool.h>
6+
//#include <unistd.h>
67
#include <emscripten/html5.h>
78
#include <emscripten.h>
89

910
#define NULL ((void*)0)
1011

12+
EM_JS(void*, call_alert, (), {
13+
alert('hello world!');
14+
throw 'all done';
15+
});
16+
1117
void initFileSystem( void ) {
18+
19+
20+
21+
int x = EM_ASM_INT({
22+
console.log('I received: ' + $0);
23+
return $0 + 1;
24+
}, 100);
25+
printf("%d\n", x);
26+
1227
EM_ASM((
1328
const myCanvas = document.querySelector( "[ID='SACK Display 1']" );
1429

1530

1631
//FS.mkdir('/IDBFS');
17-
FS.mount(IDBFS, {}, '/home/web_user');
32+
r = FS.mount(IDBFS, {}, '/home/web_user');
33+
console.log( "Log:", r );
1834
if(0)
1935
FS.syncfs(true, function (err) {
2036
console.log( "Sync happened?", err );
2137
assert(!err);
2238
}); // sync FROM backing store
39+
40+
//FS.mkdir('/working');
41+
//FS.mount(WORKERFS, { packages: [{ metadata: meta, blob: blob }] }, '/working');
42+
2343
));
2444

2545
}
@@ -88,12 +108,14 @@ void initDisplay() {
88108

89109
int main( void ) {
90110
extern void InvokeDeadstart();
111+
//char buf[256];
112+
//getcwd( buf, 256 );
113+
//printf( "Current Directory: %s\n", buf );
114+
// default path is = '/'
91115
initFileSystem();
92116
InvokeDeadstart();
93117
initDisplay();
94118

95-
printf( "Hahaha\n" );
96-
97119
EM_ASM((
98120
//FS.mkdir('/IDBFS');
99121

amalgamate/wasmgui/libs/mk3.bat

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
2+
set CFLAGS=-D__NO_OPTIONS__ -D__NO_ODBC__ -D__WASM__ -D__LINUX__ -DMAKE_RCOORD_SINGLE -D__STATIC_GLOBALS__ ^
3+
-D__MANUAL_PRELOAD__ -DUSE_SQLITE
4+
: -D__NO_MMAP__
5+
: -D__NO_OPTIONS__
6+
7+
set CFLAGS=%CFLAGS% -I../../../src/contrib/sqlite/3.27.1-TableAlias
8+
set CFLAGS=%CFLAGS% -std=gnu99
9+
set CFLAGS=%CFLAGS% -s ASSERTIONS=1
10+
11+
set CFLAGS=%CFLAGS% -DSUPPORT_LOG_ALLOCATE -DDEFAULT_OUTPUT_STDERR
12+
set CFLAGS=%CFLAGS% -Wno-parentheses -Wno-null-dereference
13+
set CFLAGS=%CFLAGS% -Wno-address-of-packed-member
14+
15+
del libsack.core* libbag.image.* libbag.render* libbag.psi*
16+
17+
18+
call emcc -s WASM=1 -s MAIN_MODULE=1 -g -D_DEBUG %CFLAGS% sack_ucb_full.c -L. -lgenx.wasm -lsexpat.wasm
19+
rename a.out.js libsack.core.js
20+
rename a.out.wasm libsack.core.wasm.so
21+
rename a.out.wast libsack.core.wast
22+
rename a.out.wasm.map libsack.core.wasm.map
23+
24+
call emcc -s WASM=1 -s SIDE_MODULE=1 -g -D_DEBUG %CFLAGS% imglib_puregl2.lo -L. -lsack.core.wasm -lfreetype.wasm -lpng.wasm -ljpeg9.wasm -lz.wasm
25+
rename a.out.js libbag.image.js
26+
rename a.out.wasm libbag.image.wasm.so
27+
rename a.out.wast libbag.image.wast
28+
rename a.out.wasm.map libbag.image.wasm.map
29+
30+
call emcc -s WASM=1 -s SIDE_MODULE=1 -g -D_DEBUG %CFLAGS% vidlib_puregl2.lo -L. -lsack.core -lbag.image.wasm
31+
rename a.out.js libbag.render.js
32+
rename a.out.wasm libbag.render.wasm.so
33+
rename a.out.wast libbag.render.wast
34+
rename a.out.wasm.map libbag.render.wasm.map
35+
36+
call emcc -s WASM=1 -s SIDE_MODULE=1 -g -D_DEBUG %CFLAGS% psi.lo -L. -lsack.core.wasm
37+
rename a.out.js libbag.psi.js
38+
rename a.out.wasm libbag.psi.wasm.so
39+
rename a.out.wast libbag.psi.wast
40+
rename a.out.wasm.map libbag.psi.wasm.map
41+
42+
call emcc -s WASM=1 -s SIDE_MODULE=1 -g -D_DEBUG %CFLAGS% loader.c -L. -lsack.core.wasm
43+
rename a.out.js loader.js
44+
rename a.out.wasm loader.so
45+
rename a.out.wast loader.wast
46+
rename a.out.wasm.map loader.wasm.map
47+
48+
set LIBS=
49+
set LIBS=%LIBS% jpeg9.lo
50+
set LIBS=%LIBS% png.lo
51+
set LIBS=%LIBS% zlib.lo
52+
set LIBS=%LIBS% freetype.lo
53+
54+
:set LIBS=%LIBS% imglib.lo
55+
set LIBS=%LIBS% imglib_puregl2.lo
56+
set LIBS=%LIBS% vidlib_puregl2.lo
57+
58+
set LIBS=%LIBS% genx.lo
59+
set LIBS=%LIBS% expat.lo
60+
set LIBS=%LIBS% psi.lo
61+
62+
set MORESRCS=..\..\..\src\contrib\sqlite\3.27.1-TableAlias\sqlite3.c
63+
64+
65+
call emcc -s WASM=1 -g -D_DEBUG %CFLAGS% loader.c -L. -lsack.core -lbag.psi
66+
67+
set LIBS=
68+
set LIBS=%LIBS% jpeg9o.lo
69+
set LIBS=%LIBS% pngo.lo
70+
set LIBS=%LIBS% zlibo.lo
71+
set LIBS=%LIBS% freetypeo.lo
72+
73+
:set LIBS=%LIBS% imglib.lo
74+
set LIBS=%LIBS% imglib_puregl2o.lo
75+
set LIBS=%LIBS% vidlib_puregl2o.lo
76+
77+
set LIBS=%LIBS% genxo.lo
78+
set LIBS=%LIBS% expato.lo
79+
set LIBS=%LIBS% psio.lo
80+
81+
call emcc -s WASM=1 -O3 %CFLAGS% loader.c -L. -lsack.core -lbag.psi
82+
83+
84+
85+
:-s EXPORT_NAME="'MyEmscriptenModule'"
86+
: MODULARIZE = 0
87+
: https://github.com/emscripten-core/emscripten/blob/1.32.2/src/settings.js#L413

android_build/dekware/emccmk.dyn.bat

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
set ANDROID_SDK=C:\general\android\android-sdk
3+
4+
set path=%path%;%ANDROID_SDK%\build-tools\27.0.3
5+
6+
. aapt package -f -m -J <input> -M AndroidManifest.xml -S <output> -I
7+
android.jar
8+
2. javac *.java and output to obj
9+
3. dx --dex --output=classes.dex obj
10+
4. aapt package -f -m -F app.unaligned.apk -M AndroidManifest.xml -S
11+
<output> -I android.jar
12+
5. apksigner sign --ks debug.keystore --ks-pass "blabla"
13+
6. zipalign -f 4 app.unaligned.apk app.apk

emccmk.dyn.bat

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
@echo This script builds all source libraries for amalgamate/wasmgui
2+
3+
set COMMON_CFLAGS=-D__MANUAL_PRELOAD__
4+
5+
cd src\contrib\genx
6+
call emccmk.bat
7+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
8+
9+
cd ..\sexpat
10+
call emccmk.bat
11+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
12+
13+
cd ..\freetype-2.8
14+
call emccmk.bat
15+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
16+
17+
cd ..\zlib-1.2.11
18+
call emccmk.bat
19+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
20+
21+
cd ..\jpeg-9
22+
call emccmk.bat
23+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
24+
25+
cd ..\libpng-1.6.34
26+
call emccmk.bat
27+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
28+
29+
cd ..\..\imglib
30+
call emccmk.bat
31+
copy *.lo ..\..\amalgamate\wasmgui\libs
32+
33+
cd puregl2
34+
call emccmk.bat
35+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
36+
37+
cd ..\..\vidlib\puregl2
38+
call emccmk.bat
39+
copy *.lo ..\..\..\amalgamate\wasmgui\libs
40+
41+
cd ..\..\psilib
42+
call emccmk.bat
43+
copy *.lo ..\..\amalgamate\wasmgui\libs
44+
@echo on
45+
: reset to home
46+
cd %~dp0
47+
48+
cd amalgamate\fullcore
49+
50+
call mk.bat
51+
copy sack_ucb* ..\wasmgui\libs
52+
+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
2+
3+
4+
@set BASE_SRCS= src/autofit/autofit.c ^
5+
src/base/ftbase.c ^
6+
src/base/ftbbox.c ^
7+
src/base/ftbdf.c ^
8+
src/base/ftbitmap.c ^
9+
src/base/ftcid.c ^
10+
src/base/ftfntfmt.c ^
11+
src/base/ftfstype.c ^
12+
src/base/ftgasp.c ^
13+
src/base/ftglyph.c ^
14+
src/base/ftgxval.c ^
15+
src/base/ftinit.c ^
16+
src/base/ftlcdfil.c ^
17+
src/base/ftmm.c ^
18+
src/base/ftotval.c ^
19+
src/base/ftpatent.c ^
20+
src/base/ftpfr.c ^
21+
src/base/ftstroke.c ^
22+
src/base/ftsynth.c ^
23+
src/base/ftsystem.c ^
24+
src/base/fttype1.c ^
25+
src/base/ftwinfnt.c ^
26+
src/bdf/bdf.c ^
27+
src/bzip2/ftbzip2.c ^
28+
src/cache/ftcache.c ^
29+
src/cff/cff.c ^
30+
src/cid/type1cid.c ^
31+
src/gzip/ftgzip.c ^
32+
src/lzw/ftlzw.c ^
33+
src/pcf/pcf.c ^
34+
src/pfr/pfr.c ^
35+
src/psaux/psaux.c ^
36+
src/pshinter/pshinter.c ^
37+
src/psnames/psnames.c ^
38+
src/raster/raster.c ^
39+
src/sfnt/sfnt.c ^
40+
src/smooth/smooth.c ^
41+
src/truetype/truetype.c ^
42+
src/type1/type1.c ^
43+
src/type42/type42.c ^
44+
src/winfonts/winfnt.c
45+
)
46+
47+
@set BASE_SRCS=%BASE_SRCS% src/base/ftdebug.c
48+
49+
50+
51+
@set CFLAGS=%COMMON_CFLAGS% -Iinclude -I../../../include -D__STATIC__ -DFT2_BUILD_LIBRARY
52+
53+
@set CFLAGS=%CFLAGS% -Wno-address-of-packed-member -Wno-parentheses -Wno-comment -Wno-null-dereference
54+
55+
@set SRCS=%BASE_SRCS%
56+
57+
58+
del libfreetype*
59+
60+
call emcc -g -D_DEBUG -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS% -L../libpng-1.6.34/ -lpng.wasm -L../zlib-1.2.11 -lz.wasm
61+
rename a.out.wasm libfreetype.wasm.so
62+
rename a.out.wasm.map libfreetype.wasm.map
63+
rename a.out.wast libfreetype.wast
64+
65+
call emcc -O3 -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS% -L../libpng-1.6.34/ -lpng.wasm -L../zlib-1.2.11 -lz.wasm
66+
rename a.out.wasm libfreetype.o.wasm.so
67+
68+
copy libfreetype* ..\..\..\amalgamate\wasmgui\libs
69+
70+
71+
@echo on

src/contrib/genx/emccmk.dyn.bat

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
@set CFLAGS=%COMMON_CFLAGS% -I../../../include
3+
@set CFLAGS=%CFLAGS% -D__STATIC__
4+
@set CFLAGS=%CFLAGS% -Wno-address-of-packed-member -Wno-parentheses -Wno-comment -Wno-null-dereference
5+
@set SRCS= charProps.c genx.c
6+
7+
del libgenx*
8+
9+
call emcc -g -D_DEBUG -s WASM=1 -s EXPORT_ALL=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS%
10+
rename a.out.wasm libgenx.wasm.so
11+
rename a.out.wasm.map libgenx.wasm.so.map
12+
rename a.out.wast libgenx.wast
13+
14+
call emcc -O3 -s WASM=1 -s EXPORT_ALL=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS%
15+
rename a.out.wasm libgenx.o.wasm.so
16+
17+
copy libgenx* ..\..\..\amalgamate\wasmgui\libs
18+
19+
20+
@echo on

src/contrib/jpeg-9/emccmk.dyn.bat

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
2+
@SET SYSDEPMEM= jmemnobs.c
3+
4+
: library object files common to compression and decompression
5+
@set COMSRCS= jaricom.c jcomapi.c jutils.c jerror.c jmemmgr.c %SYSDEPMEM%
6+
7+
: compression library object files
8+
@SET CLIBSRCS= jcarith.c jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c ^
9+
jcinit.c jcmaster.c jcmarker.c jcmainct.c jcprepct.c ^
10+
jccoefct.c jccolor.c jcsample.c jchuff.c ^
11+
jcdctmgr.c jfdctfst.c jfdctflt.c jfdctint.c
12+
13+
: decompression library object files
14+
@SET DLIBSRCS= jdarith.c jdapimin.c jdapistd.c jdtrans.c jdatasrc.c ^
15+
jdmaster.c jdinput.c jdmarker.c jdhuff.c ^
16+
jdmainct.c jdcoefct.c jdpostct.c jddctmgr.c jidctfst.c ^
17+
jidctflt.c jidctint.c jdsample.c jdcolor.c ^
18+
jquant1.c jquant2.c jdmerge.c
19+
: These objectfiles are included in libjpeg.lib
20+
21+
@Set ExternalExtraDefinitions = -DJPEG_SOURCE -DNO_GETENV
22+
:# ya, this is sorta redundant... should fix that someday.
23+
24+
@set SRCS=%COMSRCS% %CLIBSRCS% %DLIBSRCS%
25+
26+
@SET CFLAGS=%COMMON_CFLAGS% -I../../../include -D__LINUX__
27+
@SET CFLAGS=%CFLAGS% -Wno-address-of-packed-member -Wno-parentheses -Wno-comment -Wno-null-dereference
28+
29+
30+
del libjpeg9*
31+
32+
call emcc -g -D_DEBUG -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS%
33+
rename a.out.wasm libjpeg9.wasm.so
34+
rename a.out.wasm.map libjpeg9.wasm.so.map
35+
rename a.out.wast libjpeg9.wast
36+
37+
call emcc -O3 -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS%
38+
rename a.out.wasm libjpeg9.o.wasm.so
39+
40+
copy libjpeg9* ..\..\..\amalgamate\wasmgui\libs
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
3+
4+
@set PNG_SOURCE=png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c ^
5+
pngmem.c pngpread.c pngread.c pngerror.c pngwrite.c ^
6+
pngrtran.c pngwtran.c pngrio.c pngwio.c
7+
8+
9+
@set CFLAGS=%COMMON_CFLAGS% -I../zlib-1.2.11
10+
@set CFLAGS=%CFLAGS% -Wno-address-of-packed-member -Wno-parentheses -Wno-comment -Wno-null-dereference
11+
12+
@set SRCS=%PNG_SOURCE%
13+
14+
del libpng*
15+
16+
call emcc -g -D_DEBUG -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS% -L../zlib-1.2.11 -lz.wasm
17+
rename a.out.wasm libpng.wasm.so
18+
rename a.out.wasm.map libpng.wasm.so.map
19+
rename a.out.wast libpng.wast
20+
21+
call emcc -O3 -s WASM=1 -s SIDE_MODULE=1 %CFLAGS% %SRCS% -L../zlib-1.2.11 -lz.wasm
22+
rename a.out.wasm libpng.o.wasm.so
23+
24+
copy libpng* ..\..\..\amalgamate\wasmgui\libs
25+
26+
@echo on

0 commit comments

Comments
 (0)